Если у меня есть два массива символов как так:
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);
Это скопирует все символы как из одного, так и из двух, игнорируя завершающий строку char '\ 0'
strcpy ожидает, что массивы будут заканчиваться на '\0'. В Си строки завершаются нулем. Именно поэтому второй подход работает, а первый - нет.