타랑다랑
20
2019-06-09 15:58:48
0
291

c언어 문자열 2차원 배열 질문이 있습니다.


포인터로 2차원 배열을 입력받고 행과 열을 출력하는 문제를 출력해봤는데요. 문자열을 복사해오는 것 말고 직접 포인터 배열에 입력하는 방법은 없는건가요? 그리고 밑의 코드에서 행에 있는 문자열을 출력할때

name[i]인지 *(name[i])인지 항상 햇갈리네요 ㅠㅠ. 


아래는 제가 짜본 코드입니다.

int main(void)


{


int len = 10, num = 0, i, j=0;


char **name;

char buffer[30];

printf("행의 개수를 입력하시오 : ");

scanf("%d", &num);


name = (char **)calloc(num,sizeof(char *));


for (i = 0; i<num; i++)

{


scanf("%s", buffer);

len = strlen(buffer);

if (len > 0)

{

name[i] = (char *)calloc(len+1,sizeof(char));

strcpy(name[i], buffer);

}

}

for (i = 0; i<num; i++) {


printf("%d행에 저장된 문자열은 : %s\n",i, name[i]);

for (j = 0; j < len;j++)

printf("%d행 %d열에 저장된 문자열은 : %c\n", i, j, *(name[i]+j));


}

for (i = 0; i<num; i++)

{


free(name[i]);


}

free(name);


return 0;


}

0
0
  • 댓글 0

  • 로그인을 하시면 댓글을 등록할 수 있습니다.