Qt QString lastIndexOf not working



我正在使用Qt5.6,我正在尝试使用QString函数lastIndexOf。主题数据包含以下内容:

    156 + (28 * 4) + (14 * 9 * 2)

使用索引:

    int intOpB = strLocalCopy.indexOf(ucOpenBracket);

strLocalCopy包含主题数据,ucOpenBracket包含"(".

intOpB返回正确,为6。

然后我查找最后一次出现的")":

    int intClB = strLocalCopy.lastIndexOf(ucCloseBracket, (++intOpB));

使用intOpB作为引用,但lastIndexOf总是向intClB返回-1,为什么?

我使用调试器单步执行,这样我就可以验证所有变量都包含它们应该包含的内容。

如果我删除第二个参数,它可以工作,但我不明白为什么它不能与提供的参数一起工作。

来自文档:

int QString::lastIndexOf(const QString&str,int from=-1,Qt::CaseSensitivity cs=Qt:(CaseSensitive)常量

返回中字符串str最后一次出现的索引位置此字符串,从索引位置向后搜索。如果来自-1(默认),搜索从最后一个字符开始;如果from是-2,则在倒数第二个字符处,依此类推。如果str不是,则返回-1建立

如果cs是Qt::CaseSensitive(默认值),则搜索区分大小写;否则,搜索不区分大小写。

因此,搜索从位置7开始,并在BACKWARDS中搜索")"的最后一次出现,此时在QString 上的位置0-7之间没有

最新更新