转载请注明出处http://blog.csdn.net/xingjiarong/article/details/47282817

一、scanf()和gets()

1.scanf()

所在头文件:stdio.h

语法:scanf(“格式控制字符串”,变量地址列表);

接受字符串时:scanf(“%s”,字符数组名或指针);

2.gets()

所在头文件:stdio.h

语法:gets(字符数组名或指针);

两者在接受字符串时:

1.不同点:

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

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

scanf :当遇到回车,空格和tab键会自动在字符串后面添加’\0’,但是回车,空格和tab键仍会留在输入的缓冲区中。

gets:可接受回车键之前输入的所有字符,并用’\0’替代 ‘\n’.回车键不会留在输入缓冲区中

#include<stdio.h>int main()
{char a[10];scanf("%s",a);printf("%s\n",a);return 0;
}

从键盘输入字符串 asd df时,遇到空格,scanf()就认为输入结束了,所以a中存放的字符串是 ‘asd\0’。

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

从键盘输入字符串 asd df时,gets()遇到’\n’才认为是结束输入了,所以a中存放的是’asd df\0’。

#include<stdio.h>int main()
{char a[10],b[10];char c,d;scanf("%s",a);printf("a中保存的字符串为:%s\n",a);c=getchar();printf("c中保存的字符为:%c ",c);gets(b);printf("b中保存的字符串为:%s\n",b);d=getchar();printf("d中保存的字符为:%c",d);return 0;
}

输入asdf回车,因为scanf会将回车保留在缓冲区中,所以回车会紧接着被c取得而不需要再额外输入,所以a中存储的是’asdf\0’,字符c=’\n’。结果如下:

接着输入as df回车,因为gets会将’\n’替换成’\0’,所以b字符串中保留的是’as df\0’,并且还是要继续输入d的值:

最后输入d的值:

二、printf()和puts()的区别

相同点:
两者都属于stdio.h这个头文件
都能输出字符串

不同点:
puts()在输出字符串时会将’\0’自动转换成’\n’进行输出,也就是说,puts方法输出完字符串后会自动换行。

这一组比较简单,就不再举例子了。

C语言scanf()和gets()及printf()和puts()的区别相关推荐

  1. 牛客网循环输入输出测试——C语言scanf和printf用法

    在实际的编程中需要自己写出完整的程序,预留好输入的接口,使用while循环接收多个测试用例,C语言在输出时printf要用换行"\n". 字符串输入输出问题见博客:牛客网字符/字符 ...

  2. C语言scanf怎么输入字母,C语言scanf输入格式printf输出格式

    1. 转化说明符 %a(%A)浮点数,十六进制数字和p-(P-)表示法(C99)%c个字符 %d个有符号十进制整数 %f浮点数(包括浮点数和doulbe)%e(%E)浮点指数输出[e-(E-)表示法] ...

  3. C语言scanf函数详解

    函数名: scanf  功 能: 运行格式化输入  用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设 ...

  4. C语言scanf函数奇遇记

    C语言scanf函数奇遇记 作者:ocean    撰写日期:2011-11-20 博客链接:http://oceanspace.tk 看<The C Programming Language& ...

  5. C语言scanf函数用法详细解释!!!

    函数名: scanf  功 能: 执行格式化输入  用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设 ...

  6. c语言中数组部分输入赋值,c语言scanf对数组赋值

    c语言动态数组赋值,,c语言结构体数组赋值,c语言scanf对数组赋值 c语言数组动态赋值,<手把手教你学51单片机-C语言>之六 中断与数码管动态显示,c语言结构体数组赋值,c语言sca ...

  7. c语言添加输入函数吗,C语言scanf()函数下支持中文输入吗?

    C语言scanf()函数下支持中文输入吗? C语言scanf()函数下支持中文输入吗? 如果我编写一个程序,要求是先输入姓,再输入名,然后按照常姓名的方式排列出来,如果我需要输入中文该怎么办? 搜索更 ...

  8. c语言scanf返回值

    c语言scanf返回值 1. scanf 函数是有返回值的,它的返回值可以分成三种情况   1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", & ...

  9. c语言scanf与gets区别,C语言 scanf()和gets()函数的区别

    C语言 scanf()和gets()函数的区别 1.相同点:scanf( )函数和gets( )函数都可用于输入字符串 2.不同点:两者在功能上有所区别,具体区别如下: 要实现如下需求"从控 ...

  10. C语言scanf()函数的返回值

    C语言scanf()函数的返回值 代码例子: #include<stdio.h> int main(){int num1=0,num2=0;int value= scanf("% ...

最新文章

  1. 清华通信本硕巨佬秋招经验总结,收割互联网大厂后端 SP/SSP offer,太强了!
  2. 交换机组网典型故障案例及处理思路
  3. Boost:align对齐的测试程序
  4. mysql数据库修改数据库名称_MySQL数据库之MySQL 修改数据库名称的一个新奇方法...
  5. [jQuery] 谈一下Jquery中的bind(),live(),delegate(),on()的区别?
  6. oracle利用游标添加数据库,Oracle数据库游标的类型及使用实例全解
  7. 比特币近24小时内链上交易额有所上升,约为345.44亿美元
  8. python 用法 argparse.ArgumentParser()用法解析
  9. python canvas画移动物体_HTML5 -canvas拖拽、移动 绘制图片可操作移动,拖动
  10. 桌面图标不见了怎么办?
  11. linux 使用rpm命令安装和卸载软件的使用方法
  12. sketchup(草图大师)-倒圆角-避免破面现象
  13. 紫罗兰计算机音乐,【Animenz】紫罗兰永恒花园ed みちしるべ
  14. 利用计算机打字教学设计,《键盘打字》教学设计
  15. 强制卸载阿里云盾(安骑士)监控屏蔽云盾IP检测教程
  16. 巴菲特致股东的一封信:2003年
  17. 八个常见Java项目,献给初学编程的你!
  18. LC激光雷达qy调研
  19. aip文档服务器已停止工作,ColdFusion的11 REST API服务似乎意外地停止工作
  20. 商业变现永不眠(三) — 社交产品的商业化

热门文章

  1. IOS手机越狱并分身
  2. 请根据微信登录界面设计测试用例
  3. igxe本地机器人怎么用_IGXE自售机器人第四批申请开启
  4. ECSHOP最小起订数插件,ECSHOP商品起订数量插件,ECSHOP商品批发限购插件,ecshop商品批发起订量限购插件,ecshop商品购买批发最小起订量数量插件
  5. Python入门之——pexpect模块
  6. ffmpeg 的下载与使用
  7. 夏惊鸣:2017,战略转型的新路径
  8. 移动互联网你需要了解35家潜力企业
  9. CSS中的background的详细属性
  10. 如何更改文件夹的图标!如何更改文件的图标!