我是 C 的新手,如果我有一个 char
的二维数组和一个单独的字符串,我有以下问题:
char strings[4][6] = {"hello", "Hi", "bye"};
char lonestring[6] = "lone";
我想将这个字符串添加到二维数组中,使其变为:{"hello", "Hi", "bye", "lone"}
char strings[3] = lonestring;
但是当我使用下面的代码时,如果出现错误,是哪里出了问题?
最佳答案
char strings[4] = lonestring;
试图定义一个名为 strings
的对象,但是 char strings[3][5]
已经存在。因此是一个错误。
要将 lonestring
的 string 内容复制到 strings[3]
,请使用 strcpy()
。
strcpy(strings[3], lonestring);
通常的问题适用:确保目的地足够大 - 正如本例所示。
对于 char strings[4][5]
,使用 "hello"
初始化 strings[0]
不会导致string as strings[0]
缺少一个空字符。 @David C. Rankin .
OP 后来被编辑为 char strings[4][6]
。
注意:这不会添加到strings
,它只是为对象的部分分配了新值。一旦在 C 中定义了一个数组,它的大小就不能改变。
简单地说:{"hello", "Hi", "bye", ""}
变成了 {"hello", "Hi", "bye", "lone"}
关于c - 将一个字符串附加到一个二维的char数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52808157/