#include <stdio.h>
int main(void)
{
char ptarray[5][20];
int i;
i = 0;
for (i= 0; i <= 4; i++)
{
printf("%d번째 문자열을 입력하세요:", i+1);
scanf("%s", &ptarray[i][20]);
}
for (i = 0; i <= 4; i++)
{
printf("%d번째로 입력한 문자열은 %s입니다.\n", i+1, ptarray[i][20]);
}
}
#include <stdio.h>
int main(void)
{
char ptarray[5][20];
int i;
i = 0;
for (i= 0; i <= 4; i++)
{
printf("%d번째 문자열을 입력하세요:", i+1);
scanf("%s", &ptarray[i][20]);
}
for (i = 0; i <= 4; i++)
{
printf("%d번째로 입력한 문자열은 %s입니다.\n", i+1, ptarray[i][20]);
}
}
&ptarray;[i][20] >> 1. ptarray는 [0][0]부터 [4][19]까지 접근 가능합니다, 2. ptarray는 배열이므로 &(앰퍼샌드)를 이용해 레퍼런스를 하지않습니다, 3. 배열은 한개의 공간마다 하나의 문자를 저장합니다. 5개의 문자열을 [0][20] ~ [4][20] 단 5개의 공간안에 저장할 수 없습니다. 각 문자열을 [i][0~18] 에 저장하여야 합니다 (19번째 공간은 null character를 위한 공간). >> 해결방안: &ptarray;[i][20] >> ptarray[i] 그리고 ptarray[i][20] >> ptarray[i]. 설명: 컴파일러가 알아서 각 문자열을 각 배열의 0~18공간에 입력시키고 마지막에 null character 까지 넣어줍니다 :D
%s면 &안붙혀도 되지 않나??