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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (60)

我是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]已经存在。这样一个错误。

要复制的字符串内容lonestringstrings[3]使用strcpy()

strcpy(strings[3], lonestring);

通常的关注点适用:确保目的地足够大 - 就像在这种情况下一样。

随着char strings[4][5],的初始化strings[0]"hello"不会导致一个字符串作为strings[0]缺乏空字符@David C. Rankin

OP后来编辑到char strings[4][6]

注:这不添加strings,它甫一分配新值对象的部分。一旦在C中定义了一个数组,它的大小就不会改变。

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

所属标签

可能回答问题的人

  • 天使的炫翼

    17 粉丝531 提问36 回答
  • 富有想象力的人

    3 粉丝0 提问30 回答
  • 学生

    3 粉丝476 提问28 回答
  • o o

    4 粉丝494 提问27 回答

扫码关注云+社区

领取腾讯云代金券