scanf("%s"

编程入门 行业动态 更新时间:2024-10-17 09:50:09
1.C语言的中gets(s)和scanf("%s",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'。

2.scanf (“%s”,name)与scanf (“%c”,&name) 有什么分别

scanf (“%s”,name)是输入字符串到name字符数组,而scanf (“%c”,&name) 是输入字符到name字符数组的第一个元素。

如果scanf (“%s”,&name) 会报错,因为scanf()函数中,“%s”代表对字符串格式化,需要提供的参数必须是字符数组,&name仅仅是name变量的第一个单元空间。

如果scanf (“%c”,name)也会报错,因为“%s”代表对字符进行格式化,需要提供变量的地址,所以不能没有&符号。

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>;。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

扩展资料:

输入字符串的另一个函数gets()和scanf的区别:

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

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

参考资料来源:百度百科-scanf (计算机语言函数)

3.scanf和printf中 %c 与 %s的区别

scanf("%c",&c); 输入1个char,按它的ASCII值存放。

printf("%c",c); 输出1个char,按它的ASCII值对应的字符输出

char c;

scanf("%s",&c); 输入1个字符串,默认以空白分隔,并自动加上一个字符串结束符"\0",如果你只声明c,而不是 c[2] 或更长,在某些情况下,也许会遇到麻烦

printf("%c",c); 输出1个char,按它的ASCII值对应的字符输出

转载请注明出处51数据库 » scanf("%s"

  • 0
  • 0
  • 0
  • 0
  • 0

更多推荐

scanf("%s"

本文发布于:2023-06-06 01:37:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/531166.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:scanf   quot

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!