Qt QString lastIndexOf无效

时间:2016-08-02 15:32:32

标签: c++ qstring qt5.6 lastindexof

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

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

使用indexOf:

    int intOpB = strLocalCopy.indexOf(ucOpenBracket);

strLocalCopy包含主题数据,ucOpenBracket包含'('。

intOpB正确返回,为6。

然后我寻找')'的最后一次出现:

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

使用intOpB作为参考,但lastIndexOf总是返回-1到intClB,为什么?

我正在使用调试器单步执行,因此我可以验证所有变量是否包含它们应该包含的内容。

如果我删除它的第二个参数,但我不明白为什么它不能用于提供的参数。

1 个答案:

答案 0 :(得分:0)

来自Documentation

  

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

     

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

     

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

所以搜索从第7位开始,并在向后搜索')'的最后一次出现,在那时,QString上的位置0-7之间没有