`
wsql
  • 浏览: 11872101 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

scanf 和 gets 读取字符串

 
阅读更多

gets

  【1】函数:gets(字符指针)
  【2】头文件:stdio.h(c中),c++不需包含此头文件
  【3】原型:char*gets(char*buffer);
  【4】功能:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取(接受)的换行符被转换为null值,并由此来结束字符串。
  【5】返回值:读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferrorfeof函数检查是发生错误还是遇到EOF。
  【6】注意:本函数可以无限读取,不会判断上限,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值,为了避免这种情况,我们可以用fgets()来替换gets()。这个事实导致gets函数只适用于玩具程序。在V7的手册(1979年)中说明:为了向后兼容,gets删除换行符,gets并不将换行符存入缓冲区。

和scanf("%s:",&s)的比较

1.不同点:

scanf不能接受空格、制表符Tab、回车等;

而gets能够接受空格、制表符Tab和回车等;

2.相同点:

字符串接受结束后自动加'\0'。

使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止

转自:http://www.cnblogs.com/qinjunni/archive/2012/03/03/2378323.html

分享到:
评论

相关推荐

    C语言gets()和scanf()函数的区别

    scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串hi hello,则应该使用__gets__函数...  scanf和gets获取字符串时的区别  在C语言中,能构获取字符串的函数至少有两个:  

    c语言获取用户输入字符串是scanf和gets的区别详解

    今天小编就为大家分享一篇c语言获取用户输入字符串是scanf和gets的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    C++深入了解scanf()getchar()和gets()等函数

    scanf()函数会根据格式字符串中的格式来读取输入数据,并将读取的数据存储到对应的变量中。 然而,scanf()函数也存在一些问题。例如,在程序1中,我们使用scanf()函数来读取两个字符,但是程序的执行结果却与预期...

    浅谈C语言字符串格式化.pdf

    例如,可以使用printf函数输出浮点数,可以使用scanf函数读取字符串,可以使用puts函数输出字符串,可以使用gets函数读取字符串等。 C语言字符串格式化是C语言编程中非常重要的一部分,正确地使用字符串格式化可以...

    c语言中的字符数组与字符串[参考].pdf

    gets()函数用于输入字符串,从标准输入设备 (stdin)─ ─ 键盘上,读取 1 个字符串(可以包含空格),并将其存储到字符数组中去。 2. puts()函数 puts()函数用于输出字符串,输出存放在字符数组中的字符串。 ...

    关于scanf,....docx

    gets 函数用于从键盘获取字符串输入,fgets 函数用于从文件或键盘获取字符串输入。三者之间的区别在于,scanf 函数可以输入各种类型的数据,而 gets 和 fgets 函数只能输入字符串型数据。 在编写代码时,开发者需要...

    华为最新笔试题——编程题及答案.doc

    答案一使用了 strlen 函数来获取字符串的长度,然后使用两个循环来遍历字符串,查找待替换的子字符串,并将其替换为新的字符串。 答案二使用了一个循环来遍历字符串,并使用指针来查找待替换的子字符串,并将其替换...

    c语言经典常用习题.pdf

    * 解决方案:使用 gets() 函数输入字符串,scanf() 函数输入格式化长度,使用 strlen() 函数获取字符串长度,然后使用循环语句将字符串格式化输出。 习题 2:删除字符串中的重复字符 * 知识点:字符串处理、循环...

    浙大计算机学院考研复试上机试题及参考答案.doc

    在解题过程中,我们需要使用C语言编程,使用gets函数读取输入字符串,并使用memset函数初始化变量。然后,我们使用一个循环来遍历输入字符串,使用strcmp函数来比较字符串,并使用switch语句来转换英文单词为数字。...

    2021年C语言上机题库百科园南信大经典资料.doc

    2. 字符串输入函数:例如,`gets`函数用于从标准输入设备读取字符串。 3. 字符串长度计算:例如,`strlen`函数用于计算字符串的长度。 本资源摘要信息涵盖了C语言程序设计的多个方面,旨在帮助学习者巩固基础知识和...

    详解C语言gets()函数与它的替代者fgets()函数

    在c语言中读取字符串有多种方法,比如scanf() 配合%s使用,但是这种方法只能获取一个单词,即遇到空格等空字符就会返回。如果要读取一行字符串,比如: I love BIT 这种情况,scanf()就无能为力了。这时我们最先想到...

    C语言-输入输出函数笔记

    gets函数的原型为`char *gets(char *s)”,其功能是从键盘读取一个以回车结束的字符串,并将其存储到字符数组中。gets函数会自动在字符串的结尾添加`\0`字符。 puts函数 puts函数的原型为`int puts(const char *s)...

    C语言工程设计03输入输出.pptx

    scanf函数可以从键盘上获取字符串输入,而printf函数可以将字符串输出到屏幕上。 五、文件输入输出 文件输入输出是指计算机系统处理文件的输入输出过程。在C语言中,我们可以使用FILE类型的文件指针来实现文件输入...

    NWPU-C语言实验部分知识点编程总结.docx

    字符串可以通过scanf()函数或gets()函数输入,例如`scanf("%s", ch);`用于输入字符串到ch数组中。字符串也可以通过puts()函数输出,例如`puts(ch);`用于输出ch数组中的字符串。字符串相关函数包括字符串长度计算...

    C语言笔记-考研版(进阶)

    注意:算术运算符的优先级高于关系运算符、关系运算符的优先级高于逻辑与和逻辑或运算符)、While循环、字符数组、遇到一个问题,scanf通过%s读取字符串时,当遇到空格以后,就会匹配结束,这样没办法把一行带有空格...

    C语言程序设计中键盘输入数据的方法研究.pdf

    getchar()函数主要用于读取键盘输入的一个字符,而gets()函数主要将键盘中输入的字符串放入到字符数组中。 scanf()函数是C语言程序设计中获取键盘输入的重要方法。例如,程序设计人员可以使用scanf()函数来获取整数...

    C语言的特点[归类].pdf

    6. strlen函数,用于获取字符串长度。 7. strlwr函数,用于将字符串转换成小写。 8. strupr函数,用于将字符串转换成大写。 C语言是一种功能强大且灵活的编程语言,广泛应用于操作系统、系统实用程序、硬件操作和...

    C语言第四次作业ppt课件.ppt

    例如,可以使用gets函数读入包含缩记符号的字符串,然后使用循环来判断和扩展字符。 总结 本资源摘要信息对C语言第四次作业ppt课件的内容进行了详细解析,包括删除数字问题和扩展字符问题的解决方案和实现方法。...

    C语言期末复习知识总结点

    * 指针可以用于操作数组和字符串。 * 指针的使用需要注意语法和语义。 十四、宏定义 * 宏定义是指预处理器的指令。 * 宏定义可以实现代码的重用和简化。 * 宏定义的格式为:#define 宏名 替换文本,例如:#define ...

Global site tag (gtag.js) - Google Analytics