我们做题有时候会碰上这种的输入,一直输入字符,
下面附上两种解决办法
方法1:
char s[10000];
int i=0;
int arr[1000]={0};
while(scanf("%c",&s[i])!=EOF)
{
i++;
}这样你就可以一直输入,换行符,空格也是可以被读取的
我们这样输入,不算结尾的ctrl+z,有20个字符(两个空格)
i值也是20
假如我们想看各个元素的值,我们可以利用for循环打印出来,或者进行调试看
空格,换行符也被打印了出来,虽然打印到s[19],但是s[20]也可以打印,就是EOF(也就是-1)
下面附上第二种方法
方法2:
while ((ch[i] = getchar()) != EOF)//不断输入字符,换行符\n也能被读取,不想输入时候按ctrl+z
{
i++;
}同理和上面的一样,这次我们来调试看看数组中结果
注意【21】【22】,21是输入最后一个回车,22则是按得ctrl+z
并且能·看到i的值也是22,代表22个字符(不算最后的-1)
注意输入的字符最后没有\0,不要用strlen求字符串长度,strlen求字符串长度遇到\0才停止(不计算\0)