C语言里的get_s是什么意思

Python07

C语言里的get_s是什么意思,第1张

应该是gets_s函数

对应头文件<stdio.h>

原型:

char *gets_s(char *buffer,size_t sizeInCharacters)

调用形式:

gets_s(buffer,sizeInCharacters) 

其中第二参数就是允许的输入长度, 这里的size应该分配为buffer-1的长度,因为函数自动为'\0'分配空间的时候会溢出。和gets的区别就是gets读入不限制输入长度,所以在2011年12月,ANSI 采纳了 ISO/IEC 9899:2011 标准,标准中删除了 gets()函数,使用一个新的更安全的函数gets_s()替代

//摘自百度百科

#include <stdio.h>//gets_s()用法

#define CH 20

int main(void)

{

    char ch[CH]

    printf("请输入你的名字:\n")

    gets_s(ch,CH)             //这里不能用gets_s(ch)

    printf("这是你的名字:%s\n", ch)

    return 0

}

二者都是从终端读入字符。功能为1、 gets功能为读入一行,并将换行符转换为字符串结束符。2、 scanf("%s",s)读入时,遇到空白字符,包括空格,制表符,换行符时均会停止输入。从功能上可以看出不同之处:1 终止条件不同。gets只有遇到\n时才会结束输入,而scanf遇到空格或制表符时,也会结束输入。比如输入"test string\n"。用gets得到的字符串为"test string", 二用scanf得到的是"test"。2 终止后,对终止字符处理不同。比如输入为"test\nabcd"。执行gets后,\n不会留在缓冲区中,即这时调用getchar得到的字符是'a'。执行scanf后,\n会留在缓冲区,这时调用getchar得到的字符是'\n'。

1、gets() 函数是从键盘输入字符串,该函数只有一个参数。参数类型为 char* 型,即 str 可以是一个字符指针变量名,也可以是一个字符数组名。打开编辑器,新建一个c语言文件,引入标准库并新建主函数:

2、gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间,这里的程序是用gets函数输入字符串,可以看到不像scanf那样需要使用%号,gets函数中直接传入字符串即可:

3、最后运行下程序,输入“i love you”,可以看到gets函数可以直接输出空格,而scanf函数输出空格则需要使用转义字符实现,因此gets函数的使用要比scanf简洁的多。以上就是gets函数使用方法的演示: