scanf("%s")和scanf("%c")区别

本文探讨了scanf函数中使用%s和%c作为格式说明符的区别。%s在读取字符串时会将空格、回车和TAB视为分隔符,而%c则会读取这些分隔符作为正常字符。通过示例分析了不同输入情况下,这两个格式说明符的读取行为,并强调了缓冲区的角色。在处理额外字符时,可以使用getchar()函数。
摘要由CSDN通过智能技术生成

今天做了道题,涉及到字符串、字符、数字的读取问题,感觉自己对于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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值