这是我在给定字符串中查找用户输入的子字符串的代码。
bool find_str(char *str, char const *substr) {
while(*str) {
if(*str++ == *substr) {
char const *a = substr;
while((*str++ == *++a)); /*empty*/
if(*a == '\0')
return true;
}
}
return false;
}
// If match found, then return true, else false
int main(void) {
printf("%d", find_str("ABCDEF", "CDE")); /* Return true in this case */
printf("%d", find_str("ABCDE", "CDE")); /* Return false in this case */
}
正如评论中所解释的,只要它以附加字符结尾,它就会返回 true。如果不是,则返回 false。我认为增量/减量运算符存在问题。但我怎么找不到?