【发布时间】:2010-07-24 11:01:51
【问题描述】:
如果我有两个这样的 char 数组:
char one[200];
char two[200];
然后我想制作第三个将这些连接起来我该怎么做?
我试过了:
char three[400];
strcpy(three, one);
strcat(three, two);
但这似乎不起作用。如果 one 和 two 设置如下:
char *one = "data";
char *two = "more data";
有人知道如何解决这个问题吗?
谢谢
【问题讨论】:
-
第一个应该可以正常工作,只要您先将字符串分配给数组。您刚刚指定了字符串的长度,没有分配任何值。
-
它们是字符数组,还是字符串?字符串是具有特殊约定的字符数组,
'\0'必须存在并指示字符串的结尾。要复制普通的非字符串字符数组,请使用memmove。 -
顺便说一句,如果你真的是指字符串,那么
399就足够three的大小了。 -
@Pascal Cuoq:如果 1 和 2 包含字符而不是 '\0' 终止的字符串(只是一些数据),则 399 是不够的。
-
@Martin 你认为“如果你真的是指字符串”这句话不够清楚吗?我应该说什么?
标签: c string string-concatenation