3 개의 문자열 배열을 새로운 문자열로 병합하려고합니다. 건은여러 문자열 배열을 하나로 병합
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;
}
당신이 널을 추가 할 필요가 첫번째 장소에가 -terminating character (' '\ 0'') to'AllChar' – bolov
이것은 당신의 질문과는 아무런 관련이 없지만, 이것은 할당을위한 것 같습니다 : 당신의 변수 이름에 철자가 틀린 것입니다. – fenceop
@fenceop 나는 고맙다는 것을 알지 못했다. :) – hodor92