在C語言中,可以使用fgets
函數來實現輸入多行字符串。fgets
函數可以從文件流或者標準輸入中讀取一行字符串,直到遇到換行符或者讀取的字符數達到指定的最大值為止。
下面是一個使用fgets
函數輸入多行字符串的示例代碼:
#include <stdio.h>
#define MAX_LENGTH 100
int main() {
char str[MAX_LENGTH];
char input[MAX_LENGTH * 10]; // 假設最多輸入10行字符串
printf("請輸入多行字符串(以空行結束):\n");
int i = 0;
while (fgets(str, sizeof(str), stdin) != NULL) {
if (str[0] == '\n') { // 如果輸入的是空行,則結束輸入
break;
}
strcpy(input + i * MAX_LENGTH, str); // 將每一行字符串追加到input中
i++;
}
printf("輸入的多行字符串為:\n");
for (int j = 0; j < i; j++) {
printf("%s", input + j * MAX_LENGTH); // 輸出每一行字符串
}
return 0;
}
在上述示例代碼中,我們首先定義了一個MAX_LENGTH
常量,用來表示每一行字符串的最大長度。然后定義了str
和input
兩個字符數組,分別用于存儲每一行輸入的字符串和所有輸入的字符串。
在主函數中,首先輸出提示信息,然后使用fgets
函數循環讀取每一行輸入的字符串,判斷如果輸入的是空行(即只有一個換行符),則結束輸入循環。否則,將每一行輸入的字符串追加到input
中,并使用i
變量記錄輸入了多少行字符串。
最后,輸出所有輸入的字符串,通過循環遍歷input
數組,并使用printf
函數逐行輸出。
注意:由于fgets
函數會將換行符\n
也讀取到字符串中,因此在輸出時需要使用printf
函數而不是puts
函數,以保持每一行字符串的格式。