다음 코드를 사용하여 문장 (문자열)을 읽고 문장의 단어를 표시하려고합니다. 그것은해야대로 표시되지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까?C에서 문자열 배열로 작업
#include <stdio.h>
#include <string.h>
#define N 100
int main()
{
char s[N];
char words[N][N];
int i=0;
int j=0;
printf("s=");
gets(s);
while ((i<strlen(s)) && (s[i]!='.'))
{
while (s[i]!= ' ')
{
sprintf(words[j],"%c", s[i]);
i++;
}
j++; i++;
}
for (i=0;i<j;i++) printf("%s ", words[i]);
return 0;
}
는 일반적으로 우리는 이러한 경우에 디버거를 사용 ... – pmod
은 우리가 무엇이 잘못되었는지 추측하지 마십시오. 입력, 예상 출력 및 실제 출력을 설명하십시오. –
'sprintf (words [j], "% c", s [i])'는 단어 [j] [0] = s [i]보다 많지도 작지도 않음을 의미합니다. words [j] [1] = 0'. 각 단어의 첫 번째 위치가 아닌 다른 곳을 지정하지 않습니다. –