输入多个字符串并存储到数组中 以C为语言
时间: 2024-09-19 19:04:30 浏览: 49
C 语言中声明字符串数组
在C语言中,你可以使用动态内存分配和字符数组结合来输入多个字符串并存储到数组中。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc函数
#define MAX_STRINGS 5 // 定义最多可以存储的字符串数
// 函数用于获取用户输入的字符串并将它们添加到字符串数组中
void get_strings(char* strings[], int num_strings) {
for (int i = 0; i < num_strings; i++) {
char input[100]; // 每个字符串最大长度设为99 (包含NULL终止符)
printf("请输入第 %d 个字符串: ", i+1);
fgets(input, sizeof(input), stdin); // 使用fgets防止换行符溢出
input[strcspn(input, "\n")] = '\0'; // 去掉 fgets 获取的换行符
// 分配空间给当前字符串,并将其添加到数组中
strings[i] = malloc(strlen(input) + 1); // +1 for the NULL terminator
strcpy(strings[i], input);
}
}
int main() {
char* string_array[MAX_STRINGS];
int num_input;
printf("请输入你要存储的字符串数量(不超过%d): ", MAX_STRINGS);
scanf("%d", &num_input);
// 确保有足够的空间,如果输入超过限制,处理错误
if (num_input > MAX_STRINGS) {
printf("输入的字符串数量过多!\n");
return 1;
}
get_strings(string_array, num_input);
// 打印存储的字符串
for (int i = 0; i < num_input; i++) {
printf("字符串 %d: %s\n", i+1, string_array[i]);
}
// 释放动态分配的空间
for (int i = 0; i < num_input; i++) {
free(string_array[i]);
}
return 0;
}
阅读全文