首页 > 其他 > 详细

关于C中scanf()函数读取字符串的问题

时间:2015-09-11 20:51:56      阅读:308      评论:0      收藏:0      [点我收藏+]
 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     char s_name[20];
 6 
 7     scanf("%s", s_name);
 8     printf("Hello, %s!\n", s_name);
 9 
10     return 0;
11 }

 对于这段简单的代码,如果输入一个名字如:Stephen,很容易知道,其输出为:

Hello, Stephen!

这个很容易理解,但是输入更完整的名字如:Stephen Prata,那么输出结果又是什么呢?

按照上面的思路,其输出结果当然是:

Hello, Stephen Prata!

然而事实并非如此,其实际输出仍然是:

Hello, Stephen!

为什么呢?这是因为当scanf()函数读取字符串时,如果遇到空字符 空格(blank)、制表符(tab)或者换行符(newline),那么它将停止读取,也就是说,上述scanf()函数只会读取"Stephen"几个字符,而空格及其后的"Prata"将不被读取,所以最终s_name[]只会得到字符串"Stephen",最终结果就成了  Hello, Stephen!

关于C中scanf()函数读取字符串的问题

原文:http://www.cnblogs.com/dawn-l/p/4801892.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!