请高手帮忙改错小题!!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/30 16:05:03
#include <stdio.h>
#include <string.h>
int wordno (char*str) {
int i,no=0,ck=1;
char *p=str;
while(*p){
while ((*p!=' ') ||(*p!=',') ||(*p!='.') ||(*p!=''') ||(*p!='"')){ //这里出错,*p的条件多於一个就出错了...
p++;ck=1;
}
if (ck==1)
no++;
while ((*p==' ') ||(*p==',') ||(*p=='.') ||(*p==''') ||(*p=='"')){ //这里也出错,同样问题
p++;ck=0;
}
}
return no;
}

int main(){
char str[200];
gets(str);
printf("%d\n",wordno(str));
return 0;
}

计算分隔符为空格,逗号,句号,单引号,双引号下的字符串个数
he's a man. 字符串有4个

while ((*p!=' ') ||(*p!=',') ||(*p!='.') ||(*p!=''') ||(*p!='"')){ //这里出错,*p的条件多於一个就出错了...
=============================================
上面这一句改为:
while ((*p!=' ') ||(*p!=',') ||(*p!='.') ||(*p!='\'') ||(*p!='"')){

while ((*p==' ') ||(*p==',') ||(*p=='.') ||(*p==''') ||(*p=='"')){ //这里也出错,同样问题
=============================================
上面这一句改为:
while ((*p==' ') ||(*p==',') ||(*p=='.') ||(*p=='\'') ||(*p=='"')){

程序编得有点乱。
出错的地方不要使用while语句。
改变使用switch语句会好很多。