(C 编程) 如何将字符串插入到字符数组中,然后打印出该数组的所有元素?

Tin*_*ina 2 c arrays string character

我有一个以字符数组形式呈现的字符串temp。我想将这个字符数组插入到另一个数组中temp_list,然后打印出这个数组的内容。换句话说,将许多字符数组存储在单个数组中。谁能告诉我这是否可行以及如何使其发挥作用?

这是我想要实现的目标的一个例子:

int main()
{
    char temp[5] = "begin";
    char temp_list [10];
    temp_list[0] = temp;

    for (int i = 0; i < strlen(temp_list); i++)
    {
        printf("Labels: %s,", temp_list[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序时,它打印出乱码。

任何形式的指导将不胜感激。谢谢。

编辑:

谢谢您的回答。他们都非常有帮助。但我还有另一个问题...如果我想插入多个字符数组怎么办temp_list?多次使用strcpy似乎不起作用,因为我假设该函数基本上用?temp_list传递的字符串替换了 的整个内容。strcpy

Bla*_*aze 5

关于字符串存在很多误解。您的数组需要足够大才能存储空终止符,因此在这种情况下temp它的大小至少需要:6

char temp[6] = "begin"; // 5 chars plus the null terminator
Run Code Online (Sandbox Code Playgroud)

要复制字符串,请使用strcpy

char temp_list[10];
strcpy(temp_list, temp);
Run Code Online (Sandbox Code Playgroud)

要打印它,请 pass temp_list, not temp_list[i],而且您也不需要该循环:

printf("%s\n", temp_list);
Run Code Online (Sandbox Code Playgroud)

最终程序可能如下所示:

int main()
{
    char temp[6] = "begin";
    char temp_list[10];
    strcpy(temp_list, temp);
    printf("%s\n", temp_list);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)