如何比较两个QString数组Qt C ++

时间:2012-11-13 21:01:29

标签: c++ arrays qt qt-designer qstring

我想将两个QString数组与Qt和C ++进行比较,我试过这个,但它起作用了,(事实上我的应用程序崩溃......):

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

}

然后我需要在我的数组的元素中分配一个值,但我也很努力:

ArrayOne[nb] = ArrayTwo[nb];

达到此目的:

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

感谢!

2 个答案:

答案 0 :(得分:1)

您的nb值可能超出了QString大小的范围。即,nb> ArrayOne.size-1。

答案 1 :(得分:1)

你说你有:

QString ArrayOne;

如果这是真的,那么你只是在位置nb比较两个字符串中的字符,而不是字符串数组。并且QString的operator[]不检查范围,因此如果nb超过QString的长度,程序可能会崩溃,特别是如果您分配给QString::operator[]返回的无效引用... < / p>

因此,要明确:您的代码可能会崩溃,因为nb >= ArrayOne.length()