admin 管理员组

文章数量: 887032


2024年1月6日发(作者:博客个人中心登录)

c语言中gets函数的用法

gets 函数用于从标准输入(即键盘)中获取一行输入,在C语言中为行缓冲的输入。

一般的语法格式如下:

char *gets(char *s);

其中,s 代表一个指向字符串的指针,字符串由用户从键盘输入;char 是声明的字符数组的名字; *s 是一个字符串。

返回值:

gets 函数的返回值为 s 的第一个字符的指针。

功能:

gets 函数用于从标准输入中获取一行字符串。该函数在遇到换行符(Enter键,ASCII码为0x0D )或文件尾(一般是Ctrl+Z)时,才结束读取。它把由键盘输入的字符串以字符为单位存放到数组 s 中,而以换行符 'n' 作为字符串的结束标志。在存储字符时,不计算'0'字符。

当用户输入时,每次输入一个字符,它都将该字符存储到 s 中,直到用户按下'

Enter '或 ' Ctrl + Z '就会停止输入并结束函数。

另外,由于字符串可能很长,而编写程序时又不能提前知道用户输入字符串的最长长度,所以gets函数可能会在s指向的数组大小不够时,而超出预定义范围,这时就可能出现缓冲区溢出的情况,进而造成程序的安全漏洞。

说明:

gets函数由C标准库中提供,在使用该函数前程序必须包含 stdio.h 头文件。

gets函数和fgets()函数相似,只不过fgets()函数的参数多了一个,用于指定要输入的最多字符数,而gets()函数没有这个参数,也就是说,即使字符串很长,那么仍然会一直接受直到遇到换行符或者文件尾结束。

实例:

下面的实例使用gets函数从标准输入(键盘)获取一个字符串,并把它存储到字符数组 str 中:

#include

int main (){

char str[100];

printf("请输入一个字符串 :");

gets(str);

printf("你输入的字符串是: %sn",str);

return 0;

}

输出:

请输入一个字符串 :This is a test

你输入的字符串是: This is a test


本文标签: 输入 函数 字符串 字符 标准