2 차원 배열의 문자열을 연결하는 방법이 필요합니다. 빈 반점 (일명 "공백")으로 초기화 된 50x50 2 차원 배열을 만들기 시작했습니다. 그런 다음 fgets를 사용하여 각 행을 채 웁니다. 각 행에는 문자열을 구성하는 문자 배열이 있습니다. 예2d 배열의 concat 문자열
H I T H E R E
H E L L O
W O R L D
상기 빈 공간으로 유지 공간을 위해
.
이제 인쇄 할 때 각 행마다 50 개의 반점이 있으므로 "HI THERE HELLO WORLD"를 인쇄해야합니다.
여기까지 제가 지금까지 가지고 있습니다.
void printArray(char matrix[arraySize][arraySize]){
int i,j;
int tempArrayCounter =0;
int tempArray[inputLineNumber * 50];
for(i = 0; i< arraySize; i++){
for(j = 0; j<arraySize;j++){
printf("%c,",matrix[i][j]);
}
printf("\n");
}
for(j=0; j< inputLineNumber;j++){
for (i = 0; matrix[i][j] != '\0'; i++){
tempArray[tempArrayCounter] =matrix[i][j];
tempArrayCounter++;
}
}
printf("%s\n", tempArray);
}
기능의 첫 번째 절반은 무시합니다. 모든 50x50 2D 배열이 어떻게 보이는지 보여줍니다.
도움을 주시면 감사하겠습니다. 내가 도움이된다면 배열을 채우기 위해 사용되는 코드를 추가 할 것입니다
감사
편집 할 수 있습니다.
void readInput(char matrix[arraySize][arraySize]){
//inputLineNumber is the current row of the input
inputLineNumber = 0;
/*
when the line is not empty, add the line into matrix
*/
char *p;
char currentline[arraySize];
fgets(currentline,arraySize, stdin);
if((p = strchr(currentline, '\n')) != 0){
*p = '\0';
}
while(strcmp(currentline, "\0")!=0){
int k;
int inputlength = (int)strlen(currentline);
for (k = 0; k< inputlength ;k ++)
matrix[inputLineNumber][k] = currentline[k];
fgets(currentline,arraySize, stdin);
if((p = strchr(currentline, '\n')) != 0){
*p = '\0';
}
inputLineNumber++;
}
}
코드를 정리하십시오 (일관된 들여 쓰기 사용, 불필요한 콘텐츠 제거 등). 힘들지 않고 나를 도울 수 있도록 도와주세요. –
죄송합니다. 나는 처음으로 VI를 사용하고있다. 내 생각에 이클립스처럼 깨끗하게 유지하는 것은 쉽지 않다. ( –
'gg = G'는 Vim의 모든 것을 들여 쓰게 될 것이다. – YXD