gets()和puts()函数
来源:互联网 发布:php 数组的数组 编辑:程序博客网 时间:2024/05/22 08:09
scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hello",则应该使用__gets__函数。
gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。
char string[15]; gets(string); /*遇到回车认为输入结束*/
scanf("%s",string); /*遇到空格认为输入结束*/
所以在输入的字符串中包含空格时,应该使用gets输入。
scanf和gets获取字符串时的区别
在C语言中,能构获取字符串的函数至少有两个:
1.scanf()
所在头文件:stdio.h
语法:scanf("格式控制字符串",变量地址列表);
接受字符串时:scanf("%s",字符数组名或指针);
2.gets()
所在头文件:stdio.h
语法:gets(字符数组名或指针);
两者在接受字符串时:
1.不同点:
scanf不能接受空格、制表符Tab、回车等;
而gets能够接受空格、制表符Tab和回车等;
2.相同点:
字符串接受结束后自动加'\0'。
例1:
#include <stdio.h>
main()
{
char ch1[10],ch2[10];
scanf("%s",ch1);
gets(ch2);
}
依次键入asd空格fg回车,asd空格fg回车,则ch1="asd\0",ch2="asd fg\0"。
例2:
#include <stdio.h>
main()
{
char ch1[10],ch2[10],c1,c2;
scanf("%s",ch1);
c1=getchar();
gets(ch2);
c2=getchar();
}
依次键入asdfg回车,asdfg回车,则ch1="asdfg\0",c1='\n',ch2="asdfg\0",c2需输入。
scanf :当遇到回车,空格和tab键会自动在字符串后面添加'\0',但是回车,空格和tab键仍会留在输入的缓冲区中。
gets:可接受回车键之前输入的所有字符,并用'\n'替代 '\0'.回车键不会留在输入缓冲区中
gets()用到读取字符串,用回车结束输入
scanf()可以读取所有类型的变量
puts
包含头文件
stdio.h
向终端输出一个字符串
格式
int puts(char *str);
str:需要输出的字符串,可以是字符数组名(字符串),也可以是字符串常量(包括转义字符)
注意的是输出完后会自动加一个回车换行符号
返回值
输出的字符串长度,如果输出失败返回值为EOF
- gets()和puts()函数分析
- gets()和puts()函数
- gets和puts函数
- C语言学习笔记之字符串I/O(gets()函数和puts()函数)
- 字符串处理函数puts()和gets()
- gets()函数puts()函数
- gets()和puts()
- gets和puts
- gets()函数和puts()函数的渊源关系
- gets()函数与puts()函数
- 字符串读写函数gets() 、puts()、fgets()和fputs()
- C语言基础—字符串输入输出函数puts和gets
- 字符串输入gets()、fgets()和字符串输出puts()、fputs()函数
- gcc 里不能使用gets() 和 puts() 函数的解决办法
- C语言 gets(),puts()函数
- puts()函数
- C语言scanf()和gets()及printf()和puts()的区别
- C语言scanf()和gets()及printf()和puts()的区别
- 微信小程序框架
- essential-copying and pasting from Stack Overflow原文和翻译
- IARforMSP"Fatal Error[Cp001]: Copy protection check, No valid license found for this product [24] ".
- Python 2.7 好玩游戏的物品清单
- 使用weinre真机调试移动web应用(转载)
- gets()和puts()函数
- Yeelink初步体验
- 配置jdk和tomcat环变量境
- UVALive
- 前端资源网站
- 用开源加密库Libgcrypt实现AES加密
- 面试题总结3
- Domino – JnpServer集成【三】——应用
- 62. Unique Paths