如果我有两个这样的 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";
有人知道如何解决这个问题吗?
谢谢
如果我有两个这样的 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";
有人知道如何解决这个问题吗?
谢谢
如果 'one' 和 'two' 不包含 '\0' 终止的字符串,那么你可以使用这个:
memcpy(tree, one, 200);
memcpy(&tree[200], two, 200);
这将复制一个和两个中的所有字符,而不管字符串终止字符 '\0'
strcpy 期望数组以 '\0' 结束。字符串在 C 中以零结尾。这就是为什么第二种方法有效而第一种方法无效的原因。
您可以轻松使用 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