字符串输入总结

gets():遇到换行字符(/n,回车)认为输入结束,换行符之前(不包括换行符)的所有字符读入,在这些字符后添加一个空字符(/0)。它将读取换行符并将其丢弃。

这里若定义的数组比输入的数据的长度小,这些输入的数据会覆盖内存的别的地方。

为了避免这个问题,引入了fgets()函数,可以指定字符长度。(下篇文章有fgets内容)。

scanf()函数:用%s格式读取。

scanf()和gets()主要的差别在于它们如何决定字符串何时结束。scanf()更基于获取单词而不是获取字符串,而gets()函数,会读取所有的字符,直到遇到第一个换行符为止。

scanf()使用两种方法决定输入结束。无论哪种方法,字符串都是以遇到的第一个非空白字符开始。如果使用%s格式,字符串读到(但不包括)下一个空白字符格式(比如空格、制表符或换行符)。如果指定了字段宽度,比如%10s,scanf()就会读入10个字符或直接遇到第一个空白字符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值