补充代码:要求实现统计一个字符串中单词的数目,空格作为间隔
int WordNum(char* str) { int num = 0, flag = 0; while(*str) { if(_1_ == ' ') flag = 0; else { if(_2_) { flag = 1; num++; } } } return num; }
以下是我的AC代码:
int WordNum(char* str) { int num = 0, flag = 0; while(*str) { if((str++)[0] == ' ') flag = 0; else { if(flag == 0 && (str)[0] != ' ')//只有当flag==0且下一位不是空格才增加num { flag = 1; num++; } } } return num; }
细细一想,不管怎么样都要遍历一遍,关键是这个点:什么时候更新num?
当前面为空格且后面不为空格(当然字符串不一定以空格开始,所以一开始要默认有空格),也就是flag的作用。