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
精彩评论