c语言charb 20,c语言问题,12年3月真题有以下函数#include main(){ char a[20],b[20],c[20];sc...

本文探讨了scanf函数的特性,即在读取多个数据时如何处理空格,以及空格在scanf和gets之间的区别。重点讲解了空格如何影响数据读取,并通过实例说明了scanf遇到空格时的行为和后续输入语句的处理方式。
摘要由CSDN通过智能技术生成

共回答了23个问题采纳率:87%

scanf函数有个特性,当读取多个数据时,由%组成的控制符之间可以留置空格,也可以不留置空格,作用都一样:允许用空格分隔数据.比如,scanf(”%s%s”,a,b);和scanf(”%s %s”,a,b);效果一样;输入时可以输入一个字符串回一次车,也可以一次输入中间用空格隔开的两个字符串.实际上scanf在遇到空格时认为前面的输入有效并结束,而如果紧接着还是scanf语句,那就读取这个空格但不赋给任何变量,接着读取后面的输入数据;如果跟着的是别的输入语句,那就要看这别的输入语句有什么特性,按这别的输入语句的特性处理这个空格.在你这里输入this is a cat!后,this赋给了a,空格留在缓冲区,接着还是scanf接收第二个数据is,就先读取上次留下的空格,但不赋给任何变量,接着读is并赋给b;后面不再是scanf了,那么is后的空格就一直留在缓冲区.后面是用get读取,它是接收空格的……所以刚好所得结果是C项.(题中最后的printf(”%s%sn”,a,b,c);少了个%s)

1年前

追问

10

692662184

is后的空格是在缓冲区,gets也能读取吗?还有,如果就没有c数组,printf(“%s%sn”,a,b),结果是thisis还是this空格is空格,还是thisis空格

692662184

gets是接收空格的!无论这个空格在开头,在中间或是在末尾。

printf(“%s%sn”,a,b)的输出结果是thisis,前后都没有空格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值