Ответ 1
Если "один" и "два" не содержат строку с завершением "\ 0", вы можете использовать это:
memcpy(tree, one, 200);
memcpy(&tree[200], two, 200);
Это скопирует все символы из одного и двух без учета строки, заканчивающейся char '\ 0'
Если у меня есть два массива 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", вы можете использовать это:
memcpy(tree, one, 200);
memcpy(&tree[200], two, 200);
Это скопирует все символы из одного и двух без учета строки, заканчивающейся char '\ 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