我是C语言的新手,如果我有一个char
的二维数组和一个孤立的字符串,我会遇到以下问题:
char strings[4][6] = {"hello", "Hi", "bye"};
char lonestring[6] = "lone";
我想将此字符串添加到二维数组,使其变为:{“ hello”,“ Hi”,“ bye”,“ lone”}
char strings[3] = lonestring;
但是在使用以下代码时,如果出现错误,怎么了?
答案 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"}