Я пишу программу C, которая принимает строки n
и объединяет их с помощью strcat. Сначала я выделяю целевую строку в sizeof(char)*
strlen каждой строки + 1 (для нулевого символа). Затем с помощью a для использования strncat для создания окончательной строки. В и, я добавляю нулевой символ.C строк конкатенации - странные символы
Все идет хорошо, но иногда в начале целевой строки есть некоторые странные символы (например, «?»). Это происходит, когда во время выполнения программы конечная строка короче, чем раньше (во время того же выполнения).
Есть что-то, что мне не хватает?
Это код:
size = 0;
for(i = 0; i < n; i++) {
size += sizeof(char)*(strlen(strings[i]));
}
size++;
target = malloc(size);
if(!target) { /** Error handling... */ }
for(i = 0; i < n; i++) {
target = strncat(target, strings[i], strlen(strings[i]));
}
target[size] = '\0';
Спасибо,
-Donovan
Опубликовать реальный код. –
как вы на самом деле помещаете первую строку в целевую строку? – SirDarius
Извините. Теперь есть код. – Donovan