scanf 接收 空格 输入_scanf函数可以输入空白符

首先,问大家个问题:“C中scanf函数能否输入空格?”

可能很多人会白眼:“废话!C只能用gets,fgets函数获得空白符啊!”

确实,在scanf函数中,可以使用 %c 来读取一个字符,使用 %s 读取一个字符串,但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字串,因此一般使用fgets来读取一个字符串。

之前我负,也这样认为的,其实不然,scanf函数也可以哦。而且还更强大。

下面说一下如何用scanf获得空格等空白符。这里主要介绍一个参数:%[]。这个参数的意义是读入一个字符集合。[]是个集合的标志,因此%[]特指读入此集合所限定的那些字符, 比如 %[A-Z] 是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是'^', 这说明读取不在'^'后面集合的字符,即遇到'^'后面集合的字符便停止。而此时读入的字符串是可以含有空格的。

#include 

int main()

{

char a[20];

scanf("%[^\n]", a);

printf("%s\n", a);

return 0;

}

上面的程序就能输入包括空格在内的字符串。[^\n]表示遇到换行符停止。

PS:其他的scanf函数方面的问题,亲们自己查吧。用了很久的C,现在才知道scanf也能输入空格的,一切都需要自己探索。

共进!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值