字符串读入问题 (C语言)
2017-07-20 11:31
274 查看
字符串读入3种形式 scanf gets getchar
scanf不可以读入空格,读入空格即可停止,算一个字符数组(不含空格),可以应用于2个句子间有很多空格,但2个句子本身没有空格
gets可以读入空格,可以读入含有空格的句子的时候,
getchar是读入一个字符,可以读入空格,经常用于处理读掉空格。
例:n行m列的二维字符数组的输入与显示 (为了方便n=2,m=2)
for(int i=1;i<=n;i++)
{
scanf("%s",s[i]);
printf("%s\n",s[i]);
}
![](https://img-blog.csdn.net/20170720111314703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVlcHNlYXpidw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
for(int i=1;i<=n;i++)
{
gets(s[i]);
puts(s[i]);
}
![](https://img-blog.csdn.net/20170720111732161?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVlcHNlYXpidw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
for(int i=1;i<=n;i++)
{
c=getchar();
putchar(c);
}
![](https://img-blog.csdn.net/20170720112355052?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVlcHNlYXpidw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这时候可以发现问题,n=2但只输入了一个就结束了程序,这就是getchar读入回车造成的结果,如果忽略了程序会出错
scanf不可以读入空格,读入空格即可停止,算一个字符数组(不含空格),可以应用于2个句子间有很多空格,但2个句子本身没有空格
gets可以读入空格,可以读入含有空格的句子的时候,
getchar是读入一个字符,可以读入空格,经常用于处理读掉空格。
例:n行m列的二维字符数组的输入与显示 (为了方便n=2,m=2)
for(int i=1;i<=n;i++)
{
scanf("%s",s[i]);
printf("%s\n",s[i]);
}
for(int i=1;i<=n;i++)
{
gets(s[i]);
puts(s[i]);
}
for(int i=1;i<=n;i++)
{
c=getchar();
putchar(c);
}
这时候可以发现问题,n=2但只输入了一个就结束了程序,这就是getchar读入回车造成的结果,如果忽略了程序会出错
相关文章推荐
- 字符串读入问题 (C语言)
- 字符串读入问题 (C语言)
- C语言---关于scanf读入字符串的一些问题
- 字符串读入问题 (C语言)
- 字符串读入问题 (C语言)
- 字符串读入问题 (C语言)
- 字符串读入问题 (C语言)
- c语言字符串排序问题
- C++ 字符串读入问题
- C语言:关于计算字符串中空格数的问题
- C语言数据结构之模式匹配字符串定位问题
- [C语言]字符串的各种问题
- C++ 字符串读入问题
- C语言实现字符串拷贝并逆序的问题
- 关于C语言字符串拼接的一些问题
- C语言读取文本文件字符串内容不对,可能是文本编码问题
- c语言字符串问题
- C语言求解最长公共子字符串问题及相关的算法分析
- 海思中fifo的使用及c语言中fifo的使用以及c中关于字符串的说明%s以及strlen注意问题
- C语言:关于计算字符串中空格数的问题