c语言输入多组字符串数组
时间: 2025-02-14 13:04:20 浏览: 58
### 如何在C语言中输入多组字符串数组
在C语言中处理多个字符串数组可以通过定义二维字符数组来实现。下面展示了一个完整的例子,该程序允许用户输入指定数量的字符串并存储这些字符串到一个多维数组中。
```c
#include <stdio.h>
#include <string.h>
#define MAX_STRINGS 10 // 定义最多可以输入多少个字符串
#define STRING_LENGTH 50 // 每个字符串的最大长度加终止符'\0'
int main() {
char strings[MAX_STRINGS][STRING_LENGTH]; // 创建一个用于保存字符串的二维数组
int count;
printf("Enter number of strings (max %d): ", MAX_STRINGS);
scanf("%d", &count);
if(count > MAX_STRINGS || count < 1){
printf("Invalid input.\n");
return 1;
}
getchar(); // 清除缓冲区中的换行符以便fgets正常工作
for(int i = 0; i < count; ++i) {
printf("Enter string #%d: ", i + 1);
fgets(strings[i], sizeof(strings[i]), stdin); // 输入单个字符串
size_t length = strlen(strings[i]);
if(length > 0 && strings[i][length - 1] == '\n') {
strings[i][length - 1] = '\0'; // 去掉结尾的新行字符
}
}
printf("\nThe entered strings are:\n");
for(int j = 0; j < count; ++j) {
puts(strings[j]); // 输出每一个已读取的字符串
}
return 0;
}
```
此代码片段展示了如何声明一个固定大小的二维字符数组`strings`,其中每一行代表不同的字符串[^1]。通过循环结构收集用户的输入,并利用`fgets()`函数安全地获取每条记录的内容。为了防止多余的换行符被包含进来,在每次接收完数据之后会检查最后一个位置是否为`\n`,如果是则将其替换为空字符(`\0`)以标记字符串结束。
阅读全文
相关推荐


















