请举例说明你想达到的效果,这种表达不是很明确你想要什么.
首先创建这样一个function
int Word_Number(char* str){
char n=0;
char i=0;
while(1){
if(*(str+i)==0){
n++;
break;
}
if(*(str+i)==' ') n++;
i++;
}
return n;
}
然后在main里边直接使用就好,比如:
void main(void){
int x;
x=Word_Number("Hello world!");
printf("%d\n",x);
}
结果就是2
或者 char s[255]="hello world";
x=World_Number(c);
结果也是2.
唉,为了保险起见,提醒一下,别忘了#include <stdio.h>另外,还有Word_Number这个function的prototype,也就是要在上面加上一行:int Word_Number(char*);
还有,这个程序,只能辨别以空格来区分单词,如果有","就不行,其实microWord也是这么check的,所以如果有","的话,请在","后边加上空格,或者你自己把if(*(str+i)==' ') n++; 改成if(*(str+i)==' ') || *(str+i)==',') n++;而且如果有两个空格,他会算两个单词,这就是这个程序的bug,如果想避免这个,可以加一个flag之类的东西,自己研究吧.
如果还有其他的像句号这样的,自己依照这个规律自己加吧.不能什么都靠别人吧.
你都没告诉我你输入的string是什么......
我帮你test了,没有错,我知道你哪里有问题了.可能是gets()这个function,如果gets()也检测有几个单词的话,加入你输入"a空格b",她可能只检测到a,也就是说不关你输入什么,都是一个单词,因为我没用过gets(),所以不能确定,你可以这样进行debug,你让一个string=gets(),然后printf这个string,就知道结果了.
温馨提示:答案为网友推荐,仅供参考