Связать два массива символов?

Если у меня есть два массива символов как так:

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

И я затем хочу сделать одну треть, которая связывает их, как я мог сделать это?

Я попробовал:

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

Но это, кажется, не работает. Это делает если one и two установка как это:

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

Кто-либо получил какую-либо идею, как зафиксировать это?

Спасибо

15
задан ingh.am 24 July 2010 в 11:01
поделиться

2 ответа

Если 'one' и 'two' не содержат завершающуюся строку '\ 0', вы можете использовать это:

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

Это скопирует все символы как из одного, так и из двух, игнорируя завершающий строку char '\ 0'

7
ответ дан 1 December 2019 в 04:52
поделиться

strcpy ожидает, что массивы будут заканчиваться на '\0'. В Си строки завершаются нулем. Именно поэтому второй подход работает, а первый - нет.

4
ответ дан 1 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: