2012-02-14 9 views
0

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++; 
    } 
} 
+1

코드를 정리하십시오 (일관된 들여 쓰기 사용, 불필요한 콘텐츠 제거 등). 힘들지 않고 나를 도울 수 있도록 도와주세요. –

+1

죄송합니다. 나는 처음으로 VI를 사용하고있다. 내 생각에 이클립스처럼 깨끗하게 유지하는 것은 쉽지 않다. ( –

+0

'gg = G'는 Vim의 모든 것을 들여 쓰게 될 것이다. – YXD

답변

1

대신 공백의 NUL의 문자 ('\0')로 배열을 초기화하고, 문자열로 모든 라인을 인쇄하는 루프를 사용합니다.

+0

불행히도 nul chars로 초기화하고 싶습니다. 배열을 생성하는 코드는 우리에게 주어진 것입니다. –

+0

다음 채울 때 Null 문자를 텍스트 뒤에 넣으십시오. – asaelr

+0

이미 있습니다. –

0

대부분 올바른 경로에있는 것처럼 보일 수 있지만 두 가지 작업을 수행해야합니다. 최종 배열을 올바르게 끝내지 않도록하고 줄 사이에 공백을 삽입하십시오.