문자열 처리하는 코드 문의

문자열을 입력받아 strtok함수로 끊어, 끊은 내용을 x에 대입하려고 합니다.
19줄 strcpy는 잘 동작되는데, 반복문 안에서는 잘처리되다 command terminated로 종료됩니다.
어떤 부분이 잘못 되었나요?
그리고
char *x[100]이 변수를 사용하여 처리할 수는 없을 까요?
1 #include
2 #include
3
4 int main()
5 {
6
7 char sen[100];
8 char x[10][100];//char *x[100]은 comment terminated
9 char *prin;
10 int i,j;
11
12 printf("Input sentence:");
13 fgets(sen,sizeof(sen),stdin);
14
15 prin = strtok(sen," ");
16 printf("%s\n", prin);
17
18 j=0;
19 strcpy(x[j],prin);
20 puts(x[j]);
21 while(prin!= NULL){
22 j++;
23 prin = strtok(NULL, " ");
24
25 strcpy(x[j], prin);
26 puts(x[j]);
27 }
28 }
prin = strtok(NULL, " "); 이부분
prin = strtok(NULL, " "); 에서 바로 NULL 체크가 안되고,
아랫부분에서 strcpy를 시도 하므로 NULL을 x[j]에 카피 하려고 해서 오류가 나는 것 같군요.
while 문을
이런식으로 고치거나 문자열을 가지고 온 다음 NULL체크를 해야되구요.
질문을 하실땐 입력은 어떤걸 했고 어떤 오류가 나왔고를 같이 올려 주는게 답변하시는 분들이 좋아하실꺼 같네요.
댓글 달기