【c】无限制输入字符

2023-12-22 23:42:11

我们做题有时候会碰上这种的输入,一直输入字符,

下面附上两种解决办法

方法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)

文章来源:https://blog.csdn.net/2301_80108815/article/details/135162245
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。