Как сравнить два массива QString Qt Stack Overflow

я хочу сравнить два массива QString с Qt и C ++, я пробовал это, но это не работает (на самом деле мой сбой приложения …):

if(ArrayOne[nb] != ArrayTwo[nb]){

}

И тогда мне нужно присвоить значение элементу моего массива, но я тоже не работаю:

ArrayOne[nb] = ArrayTwo[nb];

Чтобы достичь этого:

if(ArrayOne[nb] != ArrayTwo[nb]){
ArrayOne[nb] = ArrayTwo[nb];
}

СПАСИБО !

-2

Решение

Ваш nb значение, вероятно, находится за пределами диапазона размера вашей QString. то есть, nb> ArrayOne.size-1.

1

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

Вы говорите, что имеете:

QString ArrayOne;

Если это так, то вы просто сравниваете символы в двух строках, а не в строковых массивах, в позиции nb, И QString operator[] не проверяет дальность, поэтому если nb больше длины QString, программа может очень хорошо аварийно завершиться, особенно если вы присваиваете неверную ссылку, возвращаемую QString::operator[]

Итак, чтобы быть ясно: ваш код, вероятно, падает, потому что nb >= ArrayOne.length()

1

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