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);
广告