我正在寫一個C程序,它需要使用n
字符串並使用strcat連接它們。 首先我分配了目標字符串sizeof(char)*
每個字符串+ 1(對於空字符)的strlen。然後用一個for我使用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
發佈實際的代碼。 – 2010-10-14 08:45:25
你怎麼真的把第一個字符串放在目標字符串中? – SirDarius 2010-10-14 08:47:41
對不起。現在還有代碼。 – Donovan 2010-10-14 08:51:26