字符串处理函数fgets()和gets()

scanf():一次只能接受一个单词,不能接受一行

gets():接受一整行的输入,输入多少就读取多少,但有可能输入的长度和要赋值的变量目标不一致而导致缓冲区溢出,这也就意味着它可能会改变不属于当前程序所在空间的数据,一次在新标准C11中已经被废弃不用了,不提倡使用gets()。

gets_s():​新标准C11中的可选项,因为是可选的所以可能有的编译器并没有实现这个函数 所以也就不支持这个函数,它相比较gets()多了一个参数,需要指明待读取内容的长度防止数组越界。


fgets():​一共有三个参数,第一个参数:存储所得数据的缓冲区;第二个参数:读入数据的最大长度,第三个:我们选择需要输入的地方 例如stdio表示从键盘输入


ps:gets()在读取到换行符后会将它丢弃,而fgets()则会保留换行符​,将换行符读取到字符串之中。puts()输出是会在字符串最后补一个换行符,而fputs()则不会,所以一般gets()搭配puts()使用;fgets()搭配fputs()使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值