目录
例题:
输入:I like beijing.
输出:I like beijing.
使用scanf库函数输入
#include <stdio.h>
int main()
{
char str[100];
scanf("%s", str);
printf("%s\n", str);
return 0;
}
输出结果:
I like beijing.
I
D:\code\c\test_05_18\x64\Debug\test_05_18.exe (进程 10916)已退出,代码为 0。
按任意键关闭此窗口. . .
显然输出的结果不符合我们的预想。
使用gets库函数输入
#include <stdio.h>
int main()
{
char str[100];
gets(str);
printf("%s\n", str);
return 0;
}
输出结果:
I like beijing.
I like beijing.
D:\code\c\test_05_18\x64\Debug\test_05_18.exe (进程 15316)已退出,代码为 0。
按任意键关闭此窗口. . .
使用gets输出的结果是我们想要的。
分析:
- scanf 读取字符串时以空格为分割,遇到空格就认为字符串结束,不在读取空格之后的内容。
- gets 读取字符串时以回车键为分割,遇到空格还会继续读取之后的内容,直到遇到回车键才会停止。
- scanf 不仅可以读取字符串,还可以读取其他类型的数据;但gets只可以读取字符串。
根据自己想要的结果进行选择,二者各有利弊。