我想將三個字符串數組合併成一個新數組。將多個字符串數組合併成一個
OUTPUT
ARRAY1 = towers
ARRAY2 = films
ARRAY3 = high
array is: towersfilmshighw
的事情是,這三個陣列成功合併成一個新的數組,但也有額外的和隨機的字符添加 - 在這種情況下,一個w
。我不允許使用指針合併數組。
任何人都可以解釋爲什麼多餘的字符在那裏? 因爲在此之後,我需要刪除重複的字符,它不工作。
這裏是我的代碼:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char array1[10], array2[10], array3[10], AllChar[50];
int lenghtOfArray1, lenghtOfArray2, lenghtOfArray3, i = 0, j = 0, k = 0, z = 0;
printf("Array 1");
gets(array1);
printf("Array 2");
gets(array2);
printf("Array 3");
gets(array3);
lenghtOfArray1 = strlen(array1);
lenghtOfArray2 = strlen(array2);
lenghtOfArray3 = strlen(array3);
if (!(lenghtOfArray1 <= 8 && lenghtOfArray2 <= 8 && lenghtOfArray3 <= 8)) {
printf("The length of all words must bigger than or equal to eight\n");
} else {
while (j < lenghtOfArray1) {
AllChar[j] = array1[i];
i++;
j++;
}
while (j < (lenghtOfArray2 + lenghtOfArray1)) {
AllChar[j] = array2[k];
k++;
j++;
}
while (j < (lenghtOfArray1 + lenghtOfArray2 + lenghtOfArray3)) {
AllChar[j] = array3[z];
z++;
j++;
}
printf("array is :");
for (i = 0; i < (lenghtOfArray1 + lenghtOfArray2 + lenghtOfArray3); i++) {
puts(&AllChar[i]);
printf("\n");
}
}
return 0;
}
你需要添加一個空 - 終止字符(''\ 0'')到'AllChar' – bolov 2014-12-07 18:08:37
這與你的問題沒有關係,但是因爲這似乎是一個賦值:你在變量名中拼寫'length'。 – fenceop 2014-12-07 18:16:05
@fenceop我沒有注意到,謝謝:) – hodor92 2014-12-07 18:30:05