开发者

Concatenate two char arrays?

If I have two char arrays like so:

char one[200];
char two[200];

And I then want to make a third which concatenates these how could I do it?

I have tried:

char three[400];
strcpy(three, one);
strcat(three, two);

But this doesn't seem to work. It does if one and two are 开发者_StackOverflow中文版setup like this:

char *one = "data";
char *two = "more data";

Anyone got any idea how to fix this?

Thanks


If 'one' and 'two' does not contain a '\0' terminated string, then you can use this:

memcpy(tree, one, 200);
memcpy(&tree[200], two, 200);

This will copy all chars from both one and two disregarding string terminating char '\0'


strcpy expects the arrays to be terminated by '\0'. Strings are terminated by zero in C. Thats why the second approach works and first does not.


You can easily use sprintf

char one[200] = "data"; // first bit of data
char two[200] = "more data"; // second bit of data
char three[400]; // gets set in next line
sprintf(three, "%s %s", one, two); // this stores data
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜