C语言中的fgets()和gets()


fgets()

fgets() 函数用于读取字符串直到换行符。它检查数组边界,因此也是安全的。

以下是 C 语言中 fgets() 的语法:

char *fgets(char *string, int value, FILE *stream)

其中:

string − 指向字符数组的指针。

value − 要读取的字符数。

stream − 指向文件对象的指针。

以下是一个 C 语言中 fgets() 的示例:

示例

 在线演示

#include <stdio.h>
#define FUNC 8
int main() {
   char b[FUNC];
   fgets(b, FUNC, stdin);
   printf("The string is: %s
", b);    return 0; }

输出

输入字符串为“Hello World!”,位于 stdin 流中。

The string is: Hello W

在上述程序中,声明了一个字符类型的数组。fgets() 函数从 STDIN 流中读取指定数量的字符。

char b[FUNC];
fgets(b, FUNC, stdin);

gets()

gets() 函数用于从标准输入设备读取字符串。它不检查数组边界,因此也不安全。

以下是 C 语言中 gets() 的语法:

char *gets(char *string);

其中:

string − 指向字符数组的指针。

以下是一个 C 语言中 gets() 的示例:

示例

#include <stdio.h>
#include <string.h>
int main() {
   char s[100];
   int i;
   printf("
Enter a string : ");    gets(s);    for (i = 0; s[i]!='\0'; i++) {       if(s[i] >= 'a' && s[i] <= 'z') {          s[i] = s[i] - 32;       }    }    printf("
String in Upper Case = %s", s);    return 0; }

输出

Enter a string : hello world!
String in Upper Case = HELLO WORLD!

在上述程序中,字符数组 s 中的字符串被转换为大写字符串。gets() 函数用于从 stdin 流中读取字符串。

char s[100];
int i;
printf("
Enter a string : "); gets(s);

更新于: 2020-06-26

1K+ 阅读量

开启你的职业生涯

通过完成课程获得认证

立即开始
广告