#include "stdio.h" void main() { char string[81]; int i,num=0,word=0; char c; gets(string); for(i=0;(c=string[i])!='/0';i++) if(c==' ') word=0; else if(word==0) { word=1; num++; } printf("there are %d words in the line./n",num); } 考虑到可能出现多个空格及句子开关就可能出现空格的情况,下面的程序存在BUG #include "stdio.h" void main() { int i=0,num=1; char str[100],c; gets(str); for(;(c=str[i])!='/0';i++) { if (c!=' ') continue; else num++; } printf("There are %d words in the sentence./n",num); }