char str[20]; scanf("%s",&str[2]);对吗

发布网友

我来回答

5个回答

热心网友

是对的没错,但是这样做是从str[2]开始写入.
str[0]和str[1]是随机值.
除非你手动给这两位赋值,
否则输出也只能从str[2]开始.
不然结果不可预知.

热心网友

是可以运行,但是得到的str是乱码,scanf("%s",&str[0]);&str[2]就是从str第三个字节开始赋值。请看如下例子,可以正常输出。
#include <iostream>
using namespace std;
int main()
{
char str[20];
str[0]='2';
str[1]='3';
scanf("%s",&str[2]);//输入整型数
cout<<str<<endl;
return 0;
}

热心网友

char str[20];
scanf("%s", str);

这样写就行了。

热心网友

就是不要str[0] 和str[1] 这两个单元的字符串啊。

热心网友

不对,应是 char str[20];scanf("%s",str);

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com