将字符串附加到char的二维数组吗?

时间:2018-10-15 00:04:17

标签: c arrays

我是C语言的新手,如果我有一个char的二维数组和一个孤立的字符串,我会遇到以下问题:

char strings[4][6] = {"hello", "Hi", "bye"};
char lonestring[6] = "lone";

我想将此字符串添加到二维数组,使其变为:{“ hello”,“ Hi”,“ bye”,“ lone”}

char strings[3] = lonestring;

但是在使用以下代码时,如果出现错误,怎么了?

1 个答案:

答案 0 :(得分:3)

char strings[4] = lonestring;试图定义一个名为strings的对象,但char strings[3][5]已经存在。这是一个错误。

要将lonestring string 内容复制到strings[3],请使用strcpy()

strcpy(strings[3], lonestring);

通常需要注意的是:确保目的地足够大-在这种情况下。


使用char strings[4][5]时,用strings[0]初始化"hello"不会导致 string ,因为strings[0]缺少 null字符@David C. Rankin

OP随后被编辑为char strings[4][6]


注意:这不会添加strings,它只是为对象的各个部分分配了新值。一旦使用C定义了数组,其大小就无法更改。

简单地说:{"hello", "Hi", "bye", ""}变成了{"hello", "Hi", "bye", "lone"}