C++ char 类查找字符索引

C++ char class findCharIndex

本文关键字:字符 索引 查找 char C++      更新时间:2023-10-16
int String::findCharIndex(const char &c) const
{
for (int i =0; i < this->getLength();i++)
{   
if ( this->operator[](i) == c)
{
return i;
break;
}
else
return -1;
}

我一直在使用这个函数,它返回 c 字符串中字符 c 的索引。该函数适用于字符,但如果 c 是一个数字,它仍然会产生 -1。

例:

">

我有 2 只狗"中"2"的第一个索引是 -1。

请告诉我为什么,因为它应该是 7?

您的return -1;语句在错误的位置。

它附着在循环内ifelse,因此当this->operator[](i) == c评估为假时,它将达到它。 实际上,如果第一个char是匹配的,则调用return i;,否则调用return -1;。您完全忽略了第 2 次及后续char

return -1;语句需要移动到循环下方,以便只有在扫描整个字符串而没有找到任何匹配项时才可以访问它,例如

int String::findCharIndex(const char &c) const {
for (int i = 0; i < this->getLength(); ++i) {
if (this->operator[](i) == c) {
return i;
}
}
return -1; // <-- moved here
}