- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
C 库 - gets() 函数
C 库的 gets() 函数用于从标准输入流 (stdin) 读取一行,并将其存储到 str 指向的字符串中。它会继续从输入流读取字符,直到遇到换行符或文件结束。然后,换行符将被空终止符替换,生成的字符串将存储在 str 中。
语法
以下是 C 库 gets() 函数的语法:
char *gets(char *str);
参数
此函数只接受一个参数:
- str : 指向字符数组的指针,输入字符串将存储在此处。它必须有足够的空间来存储输入字符串以及空终止符。
返回值
gets() 函数成功时返回相同的指针 str。失败或文件结束时,返回 NULL。
示例 1:从标准输入读取字符串
此示例使用 gets() 从标准输入读取字符串,然后打印输入的字符串。
以下是 C 库 gets() 函数的示例。
#include <stdio.h> int main() { char str[100]; printf("Enter a string: "); gets(str); printf("You entered: %s\n", str); return 0; }
输出
以上代码产生以下结果:
Enter a string: Hello, World! You entered: Hello, World!
示例 2:处理缓冲区溢出
此示例显示当输入字符串超过缓冲区大小时会发生什么,从而导致缓冲区溢出。只有适合缓冲区的开头几个字符会被存储,这会导致意外的行为。
#include <stdio.h> int main() { char str[5]; printf("Enter a string: "); gets(str); printf("You entered: %s\n", str); return 0; }
输出
执行以上代码后,我们得到以下结果:
Enter a string: Overflow You entered: Over
广告