C中的fgets()和gets()

fgets()

该函数fgets()用于读取字符串,直到换行符为止。它检查数组绑定,也很安全。

这是fgets()C语言的语法,

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

这里,

字符串-这是指向char数组的指针。

value-要读取的字符数。

-这是指向文件对象的指针。

这是fgets()C语言的示例,

示例

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

输出结果

输入字符串是“ Hello World!”。在标准输入流中。

The string is: Hello W

在上面的程序中,声明了一个char类型的数组。该函数fgets()从STDIN流中读取字符直到给定的数字。

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

gets()

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

这是gets()C语言的语法,

char *gets(char *string);

这里,

字符串-这是指向char数组的指针。

这是gets()C语言的示例,

示例

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

输出结果

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

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

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