Qt QString 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, почему?

Я использую отладчик для одного шага, чтобы я мог проверить, что все переменные содержат то, что они должны.

Если я удаляю второй параметр, он работает, но я не понимаю, почему он не работает с предоставленным параметром.

0

Решение

От Документация:

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

Возвращает позицию индекса последнего вхождения строки str в
эта строка, поиск назад от позиции индекса от. Если от
-1 (по умолчанию), поиск начинается с последнего символа; если от -2, рядом с последним символом и так далее. Возвращает -1, если str не
найденный.

Если cs равно Qt :: CaseSensitive (по умолчанию), поиск чувствителен к регистру;
в противном случае поиск не зависит от регистра.

Таким образом, поиск начинается с позиции 7 и выполняет поиск НАЗАД для последнего вхождения ‘)’, которого на данный момент нет между позициями 0-7 в QString.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]