C++ char 类查找字符索引
C++ char class findCharIndex
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;
语句在错误的位置。
它附着在循环内if
的else
,因此当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
}
相关文章:
- 将转换字符键入 int 以用作向量C++的索引
- 查找字符在两个索引之间出现的次数
- *无符号字符中的索引值
- C++ char 类查找字符索引
- int 数组,但索引是字符?
- 为什么在 c++ 中索引字符串会发出隐式转换警告?
- 根据字符获取数组的索引
- CPP:如何获取字符的最后一个索引
- 如何计算 3d 数组中的索引值在内存中的位置?如何计算字符**中的索引值在内存中的位置?
- 将特定索引处的字符数组内容与字符文字 - cpp 进行比较
- 为字符串中的每个字符(不是字符位置!)分配唯一的索引
- 通过字符串的字符对整数数组进行索引
- 从给定索引返回子字符字符串的函数
- 在C 字符串中,为什么在最后一个字符之后,通过索引和()访问索引时行为是不同的
- 是否可以使用字符串或字符索引数组
- 如何使该程序在数组中打印搜索字符的索引,否则将找不到它
- 如何在 C++ 的字符串中打印从一个索引到另一个索引的字符范围
- 为什么在使用字符索引数组时会出现这种不同的行为
- 从 1 中创建新的字符 * 作为参数,元素位于 2 个索引之间
- 字符串下标超出范围.我不知道如何使用字符索引数组,所以我使用了(无符号整数),但它不起作用