回复 13楼 初出茅庐MM
曾经听说 授人以鱼,不如授之以渔。看了版主给你的代码,你知道自己哪里错了么??不知道自己哪里错了还不是不会,对于这道题目来说不知道有多少种解决方法。但是你自己想出来的就是属于你的思维,只是看了人家给的代码,你仍然不知道自己思维里是哪里错了。这对你有进步而言么?下面给你指出你代码的错误地方。
#include<stdio.h>
#include<string.h>
int main(void)
{
char text[80];
printf("enter a text: ");
fgets(text,sizeof(text),stdin);
int i=0;
int n=strlen(text);
for(i=0;i<n;i++)
{
if(text[i]==',')
text[i]=' ';
if(text[i]==10)
{
text[i]='\0';
break;
}
}
i=0;
int j=0,k=0;
char words[20][15];
char word[15];
while(1)
{
if(text[i]==10) break;
while(text[i]==' ')
i++;
if(text[i]=='\0')
break;
j=0;
while(text[i]!=' '&&text[i]!='\0')// 你的代码核心问题就是出在这里!!!你用空格分开单词,但是你有没有想过最后一个单词呢?最后一个单词后面有空格么?
word[j++]=text[i++];
//显然没有最后一个单词后面是'\0'
word[j]='\0';
strcpy(words[k++],word);
}
for(i=0;i<k;i++)
printf("%s\n",words[i]);
return 0;
}