在C语言中输入多行字符串的几种方法有:使用多次调用gets函数、使用fgets函数、使用多行字符串拼接、使用scanf函数的正则表达式。 其中,使用fgets函数是最推荐的方法,因为它能更好地处理缓冲区溢出的问题,也能处理多行输入。下面将详细描述使用fgets函数的方法。
一、使用fgets函数
1. fgets函数介绍
fgets函数是一个安全的输入函数,它可以从指定的文件流中读取字符,直到遇到换行符、文件结束符或达到指定的最大字符数为止。它的原型如下:
char *fgets(char *str, int n, FILE *stream);
这里,str
是存储读取字符的缓冲区,n
是要读取的最大字符数,stream
是输入流,通常是标准输入stdin
。
2. 使用fgets读取多行字符串
为了读取多行字符串,可以多次调用fgets函数,将每一行的内容存储在不同的缓冲区中,或者将多行内容拼接到一个大的缓冲区中。下面是一个示例程序,演示如何使用fgets读取多行字符串并存储在一个大的缓冲区中:
#include <stdio.h>
#include <string.h>
#define MAX_LINES 100
#define MAX_LENGTH 1000
int main() {
char buffer[MAX_LINES][MAX_LENGTH];
char result[MAX_LINES * MAX_LENGTH];
int i;
printf("请输入多行字符串,输入结束请按Ctrl+D(Unix/Linux)或Ctrl+Z(Windows):n");
for (i = 0; i < MAX_LINES; i++) {
if (fgets(buffer[i], MAX_LENGTH, stdin) == NULL) {
break;
}
}
result[0] = '