这个函数的问题在于它查找所有的子字符串,但并不适用于单词。例如,如果我在"hifive to to evereyone"中寻找"hi",它会返回1。
int HowManyString(char *satz,char *word) {
int coun = 0;
while (strlen(word)<strlen(satz)) {
if (strstr(satz,word)==NULL) {
return coun;
} else {
satz=strstr(satz,word)+strlen(word);
if(*(satz)==' '||*(satz)=='\0'){
coun++;
} else {
return coun;
}
}
}
return coun;
}
strtok()
不适合这个任务,因为它会修改第一个字符串参数。 - chqrlie