码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-09-11 20:54:37      阅读:236      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!