scanf读入字符串与读入字符的区别

本文探讨了C语言中使用scanf函数的一些细节问题,包括如何避免读取到不必要的换行符或空白字符,以及针对不同数据类型时应注意的不同行为。特别提到了char类型变量和字符串的读取方法,并给出了二维char数组的有效读取方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天下午比赛时候有道题用c++输入输出是超时的,所以准备换上c试试,发现几个小问题:

1、使用scanf("%c", &a)读取a(a是char类型),如果读取之前有换行符或者空格,那么a就会把之前的换行符或者空格读取到,解决方法就是这之前先getchar()一下。

2、而如果用scanf("%s", str)读取str(我发现str是char或者char[]都是可以的),不会读取前边的换行符或者空格。

3、其他数值类类型是没有这样的问题的。

4、二维char数组不能用scanf("%s", str[i][j]),可以用scanf("%s", str[i])或者scanf("%c",&str[i][j]),前者速度更快,现在想了想应该是数组名可以表示数组首地址的原因。(3/6/2014 补)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值