я хочу сравнить два массива QString с Qt и C ++, я пробовал это, но это не работает (на самом деле мой сбой приложения …):
if(ArrayOne[nb] != ArrayTwo[nb]){
}
И тогда мне нужно присвоить значение элементу моего массива, но я тоже не работаю:
ArrayOne[nb] = ArrayTwo[nb];
Чтобы достичь этого:
if(ArrayOne[nb] != ArrayTwo[nb]){
ArrayOne[nb] = ArrayTwo[nb];
}
СПАСИБО !
Ваш nb
значение, вероятно, находится за пределами диапазона размера вашей QString. то есть, nb> ArrayOne.size-1.
Вы говорите, что имеете:
QString ArrayOne;
Если это так, то вы просто сравниваете символы в двух строках, а не в строковых массивах, в позиции nb
, И QString operator[]
не проверяет дальность, поэтому если nb
больше длины QString, программа может очень хорошо аварийно завершиться, особенно если вы присваиваете неверную ссылку, возвращаемую QString::operator[]
…
Итак, чтобы быть ясно: ваш код, вероятно, падает, потому что nb >= ArrayOne.length()