C语言gets函数的用法,能用代码举个例子么

如题所述

1、gets() 函数是从键盘输入字符串,该函数只有一个参数。参数类型为 char* 型,即 str 可以是一个字符指针变量名,也可以是一个字符数组名。打开编辑器,新建一个c语言文件,引入标准库并新建主函数:

2、gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间,这里的程序是用gets函数输入字符串,可以看到不像scanf那样需要使用%号,gets函数中直接传入字符串即可:

3、最后运行下程序,输入“i love you”,可以看到gets函数可以直接输出空格,而scanf函数输出空格则需要使用转义字符实现,因此gets函数的使用要比scanf简洁的多。以上就是gets函数使用方法的演示:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-22

c语言,gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。

其调用格式为:gets(s)。其中s为字符串变量(字符串数组名或字符串指针)。如果为单个字符指针,编译连接不会有错误,但运行后内存溢出错误。

扩展资料:

gets()函数用于从缓冲区中读取字符串,其原型如下:

char *gets(char *string);

gets()函数从流中读取字符串,直到出现换行符或读到文件尾为止,最后加上NULL作为字符串结束。

返回值,若成功则返回string的指针,否则返回NULL。

注意:由于gets()不检查字符串string的大小,必须遇到换行符或文件结尾才会结束输入,因此容易造成缓存溢出的安全性问题。

参考资料来源:百度百科-gets

本回答被网友采纳
第2个回答  推荐于2017-11-25
/*1.不同点:
scanf不能接受空格、制表符Tab、回车等;
而gets能够接受空格、制表符Tab和回车等;
2.相同点:

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

#include "stdio.h"
#include "string.h"
int l1=0,l2=0; //l1小写字母个数,l2大写字母个数
main()
{
void str(char,int);
char c[100];
int length;
printf("Please input a string");
/* scanf("%s",c);*/
gets(c);
length=strlen(c);
str(c,length);
printf("小写字母个数:%d,大写字母个数:%d\n",l1,l2);
}
void str(char b[],int n)
{
int i;
for(i=0;i<n;i++)
if('a'<=b[i]&&b[i]<='z') l1++;
else if('A'<=b[i]&&b[i]<='Z') l2++;
else if(b[i]=' ') continue;
}
你看看吧希望能给你帮助本回答被提问者和网友采纳
第3个回答  2012-12-20
gets是获取一个字符串以回车结尾可以包含空格
char str[100];
gets(str);
printf("%s",str);
相似回答