关于C中的gets、fgets、get_s的特点和使用。

本文介绍了C语言中用于读取字符串的三个函数:gets、fgets和gets_s。gets()因可能导致缓冲区溢出被C11标准废弃;fgets()通过限制读取字符数避免溢出,但会保留换行符;gets_s()是C11新增的安全版本,限制读取长度且不存储换行符。在不确定输入长度的情况下,推荐使用fgets()。
摘要由CSDN通过智能技术生成

 1、gets()

       在读取字符串是,scanf()和转换说明%s只能读一个单词,但是在程序中经常要读一整行输入。所以gets()函数就出现了,gets()函数简单易用。其特点如下:

(1)、代入参数只有一个。

(2)、读取一整行,终止于换行符。

(3)、丢弃换行符并换成空字符进行存储。

传入参数只有words,无法检查数组是否装得下。如果输入过长的字符串会导致缓冲区溢出,但是如果这些溢出的字符只是占用了尚未使用的空间,就不会立即出现问题,如果它们擦除程序中的其他数据,就会导致异常终止。有人通过利用gets()插入和运行破坏系统安全的代码,所以C11标准直接将其废除。

2、fgets()

fgets()通过第二个参数限制读入的字符数来解决溢出的问题。该函数是专门设计于处理文件输入。所以一般情

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值