c语言中gets函数和gets_s函数用法一样吗

如题所述

二者都是从终端读入字符串。功能为
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'。
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言中,gets()和puts()函数与getchar()与putchar()函数有何区别?_百 ...
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符不属于这个字符串。其调用格式为: gets(s);s为字符串变量(字符串数组名或字符串指针)。gets(s)函数与scanf("%s", &s)相似, 但不完全相同, 使用scanf("%s", &s) 函数输入字符串时存在一个问题, 就是如果输入了空格会认...

gets函数有危险,那么语句gets(s);怎么用scanf函数改写呢?
scanf()函数和gets()函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hello",则应该使用__gets__函数。gets可以接收空格;而scanf遇到空格、回车和 Tab键 都会认为输入结束,所有它不能接收空格。char string[15];gets(string);\/*遇到回车认为输入结束*\/ scanf("%s",string)...

get gets(s)怎么用,啥区别? C语言
呵呵。get是输入一个字符。二gets是向一个字符串中输入数据、

C语言的字符串输入函数gets_s()
gets_s()与fgets()的区别有两点。首先,只要输入行未超过最大字符数,两者几乎完全相同,可直接用gets_s()替代gets()。其次,gets_s()在处理输入过长情况时表现更为安全,但若希望程序继续运行,需编写特殊“处理函数”。如果目标存储区容纳不下输入行,使用gets()不安全,存在数据覆盖风险。gets_s...

c语言gets()、puts()
scanf函数 将空格视为一个字符串的结束 回车也是结束 而gets函数 将回车视为字符串结束 建议看 "程序这东西 第二版"网上有这本书,轻松搞笑 愉快的学习程序 希望你看完之后 有很大收获。

请问在C语言中 gets scanf getchar是等价的吗
2.gets(s)一次只能输入一个字符串,但它可以接受空格和TAB做为字符串的有效字符,遇回车符终止接收。3.getchar函数是字符函数,只能用来接受1个字符,可以用ch=getchar()来给char型变量ch赋于一个字符型的值。这里须要注意的是C语言中字符变量与字符串的不同,字符变量用char来定义,占1个字节的内存...

C语言结构体为什么用gets和puts输入和输出 经常出现错误?
gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。本函数可以无限读取,不会判断上限,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这...

C语言里的get_s是什么意思
应该是gets_s函数吧 对应头文件<stdio.h> 原型:char *gets_s(char *buffer,size_t sizeInCharacters);调用形式:gets_s(buffer,sizeInCharacters) ;其中第二参数就是允许的输入长度, 这里的size应该分配为buffer-1的长度,因为函数自动为'\\0'分配空间的时候会溢出。和gets的区别就是gets读入不限制...

c语言中gets(s)与gets(s[0])的区别
从数组看,gets(s) s应该是一个一维数组;gets(s[0]) s应该是一个二维数组;从指针看,s都是一个指针变量

...前两个用%S输入,后两个用gets()输入,用puts()输出……
gets(s)函数与scanf("%s", &s)相似, 但不完全相同, 使用scanf("%s", &s)函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符 串直到回车为止。gets(s)函数中的变量s为一字符串。如果为单个字符,...

相似回答