2016-08-02 3 views
0

Qt5.6을 사용하고 있습니다. QString 함수 lastIndexOf를 사용하려고합니다.Qt QString lastIndexOf가 작동하지 않습니다.

intOpB가 제대로 반환

int intOpB = strLocalCopy.indexOf(ucOpenBracket); 

strLocalCopy 주제 데이터를 포함하고 ucOpenBracket 포함 '('와 6

이다.

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

가 사용 같이 IndexOf : 주제 데이터는 같은 것을 포함

그런 다음 ')'의 마지막 발생을 찾습니다.

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

intOpB를 참조로 사용하지만 lastIndexOf는 항상 intClB에 -1을 반환합니다. 이유가 무엇입니까?

모든 단계에서 디버거를 사용하여 모든 변수가 포함되어 있는지 확인할 수 있습니다.

두 번째 매개 변수를 제거하면 작동하지만 제공된 매개 변수가 작동하지 않는 이유를 알 수 없습니다. Documentation에서

답변

0

:

INT의 QString :: lastIndexOf에서도 (const를 QString & STR, INT에서 = -1, Qt는 :: CaseSensitivity CS = Qt는 :: 소문자를 구분) const를

이 돌려줍니다 에있는 문자열 str이 마지막으로 나타나는 인덱스 위치. 인덱스 위치에서 뒤로 검색합니다. from이 -1 (기본값)이면 검색은 마지막 문자에서 시작됩니다. from가 -2 인 경우, 마지막 문자 다음의 경우 등등. str이 이 아닌 경우 -1을 반환합니다.

cs가 Qt :: CaseSensitive (기본값) 인 경우 검색은 대소 문자를 구분합니다. 그렇지 않으면 검색에서 대소 문자를 구분하지 않습니다.

그래서 검색 위치 (7)에서 시작하고 그 시점에서 거기 QString

+0

에 위치 0-7 사이에 아무도없는 감사의 마지막 선두로부터 ')', 검색해, 의미가 있습니다. – SPlatten

관련 문제