C语言多行字符串输入问题

C语言多行字符串输入问题,第1张

C语言多行字符串输入问题 不明确具体输入行数

对于没有确定的输入行数时,一般采用Ctrl+Z结束输入。


对于输入多个字符串,可以保存在二维数组中

1.~scanf方式
char str[100][100];
int i=0;
while(~scanf("%s",str[i]))
{
	i++;
}

scanf函数的返回值为正确输入值的个数,如果没有正确输入,scanf返回值为-1,然后取反,就为0,退出循环

但是,这会产生一个问题,当输入空格也会结束输入使的行数增加

下面进行改进

while(gets(a[i]))
    {
        if(strcmp(a[i]," ")==0)
        {

            break;
        }
        i++;
    }

**实现思路:**通过比较输入行和空字符串是否相等,如果相等则退出输入

2.EOF

EOF即:End of file,文件结束符

char str[100][100];
int i=0;
while(scanf("%s",str[i])==1)
{
	i++;
}

这里的1代表的是输入的元素的个数,表示输入元素个数不为1则结束循环

3.scanf
char a[30];
scanf("%[^\n]",a);

scanf中的*[^\n]\表示遇到换行才结束输入*

\

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/578926.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存