一个简单程序....

来源:百度知道 编辑:UC知道 时间:2024/09/21 12:42:57
#include <stdio.h>
void main()
{char str1[]="people and computer",str2[10];
char *p1=str1,*p2=str2;
scanf("%s",p2);
printf("%s",p2);
printf("%s\n",p1);
}

运行这个程序,输入字符串PEOPLE AND COMPUTER.得到的结果是
PEOPLEpeople and computer

我调试了一下,结果确实是这个...但是.为什么不是PEOPLE ANDpeople and computer呢??请指教.....

PEOPLE AND COMPUTER.
scanf只能读取一部分而已。
你可以用getline来代替。

scanf遇到空格就算一个字符串结束了

显然是的啊,scanf读入字符串到非法字符停止,scanf不能读入空格
所以只是读完PEOPLE为止,输出只能如此,剩下的还在缓冲区里