今天做了道题,涉及到字符串、字符、数字的读取问题,感觉自己对于scanf("%s") 和scanf("%c")的区别还不是很清楚,以前都是一边写,一边测,也没注意过它们的区别,今天感觉被坑的较惨,所以写下这篇博文。
读入格式:%s、%c、%d……
它们各自的分隔符:
%s:空格、回车、TAB键
%d:空格、回车、TAB键
%c:没有分隔符,上述分隔符都被它当作正常字符对待。
以下内容摘自:http://blog.csdn.net/liuhui_8989/article/details/13398793
首先声明:在键盘中敲入字符后,字符会首先保存在键盘缓冲区中供scanf函数读取(scanf,getchar等函数是读取缓冲区,getch函数是读取的控制台信息,即为直接从键盘读取)。另外特别注意键盘上敲入回车实际为“\r\n”,但存储到缓冲区时候会舍弃‘\r’而只存储\n.例如我们敲入字符“12345回车”,缓冲区内存储的为“12345\n”.
文章中“_”代表空格
代码:
char *s;
scanf("%s",s);