📅  最后修改于: 2023-12-03 15:26:42.148000             🧑  作者: Mango
在 C 语言中,我们可以通过以下步骤创建字符串数组,从而实现根据用户输入动态创建数组的功能:
首先,我们需要引入头文件。
#include <string.h>
头文件 string.h 包括了字符串处理的函数,我们在后面的步骤中需要用到其中的函数。
接下来,我们需要定义变量和读取用户输入。
char input_string[1024];
fgets(input_string, sizeof(input_string), stdin);
这里我们定义了字符数组 input_string,可以容纳最大为 1024 个字符。我们使用 fgets() 函数从标准输入流中读取用户输入。注意,fgets() 函数会在字符串末尾添加一个换行符,因此在后面我们需要删除它。
接下来,我们需要删除字符串末尾的换行符。我们可以使用 strlen() 函数获取字符串长度,通过将换行符替换为 null 字符 '\0' 完成删除。
int len = strlen(input_string) - 1;
if (input_string[len] == '\n')
input_string[len] = '\0';
现在,我们已经获取了用户输入的字符串,并删除了末尾的换行符,可以将其保存到一个字符串数组中。
char* array[] = {input_string};
这里我们定义了一个字符串数组 array,将 input_string 赋值为第一个元素。
如果需要根据用户的输入创建多个元素的字符串数组,我们可以使用循环语句。
int num_of_strings;
scanf("%d", &num_of_strings);
char* array[num_of_strings];
for (int i = 0; i < num_of_strings; i++) {
char input_string[1024];
fgets(input_string, sizeof(input_string), stdin);
int len = strlen(input_string) - 1;
if (input_string[len] == '\n')
input_string[len] = '\0';
array[i] = input_string;
}
这里我们通过 scanf() 函数获取用户要创建的字符串数组的元素数量,然后在 for 循环中读取用户输入的字符串,并将其加入字符串数组 array 中。
#include <stdio.h>
#include <string.h>
int main() {
char input_string[1024];
fgets(input_string, sizeof(input_string), stdin);
int len = strlen(input_string) - 1;
if (input_string[len] == '\n')
input_string[len] = '\0';
char* array[] = {input_string};
printf("Created array with one string: %s\n", array[0]);
int num_of_strings;
scanf("%d", &num_of_strings);
char* array[num_of_strings];
for (int i = 0; i < num_of_strings; i++) {
char input_string[1024];
fgets(input_string, sizeof(input_string), stdin);
int len = strlen(input_string) - 1;
if (input_string[len] == '\n')
input_string[len] = '\0';
array[i] = input_string;
}
printf("Created array with %d strings:\n", num_of_strings);
for (int i = 0; i < num_of_strings; i++) {
printf("%s\n", array[i]);
}
return 0;
}
以上是根据用户输入创建 C 语言字符串数组的完整代码。