C语言gets()和get_s()函数

C与C++ 专栏收录该内容
15 篇文章 1 订阅

C语言gets()和get_s()函数

介绍
gets()可以无限读取,易发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值,由于可以无限读取,所以在2011年12月,ANSI 采纳了 ISO/IEC 9899:2011 标准,标准中删除了 gets()函数,使用一个新的更安全的函数gets_s()替代

用法

gets()用法

#include <stdio.h>   
int main(void)
{
    char str1[5];  
    gets(str1);
    printf("%s\n", str1);
    return 0;
}

gets_s()用法

#include <stdio.h>
#define CH 20
int main(void)
{
    char ch[CH];
    printf("请输入你的名字:\n");
    //gets_s用法:gets_s(buffer,size);
    //推荐用字符数组长度-1作为size(留空'\0')
    gets_s(ch,CH-1);
    printf("这是你的名字:%s\n", ch);
    return 0;
}

特点
gets()函数读取到\n(我们输入的回车)于是停止读取,但是它不会把\n包含到字符串里面去。然而,和它配合使用的puts函数,却在输出字符串的时候自动换行。

  • 11
    点赞
  • 0
    评论
  • 22
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值