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+ 閱讀量

開啟你的職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.