在Qt框架中,QString 类提供了多种方法来比较两个字符串是否相等。最常用的方法是使用 == 运算符或 compare() 函数。以下是这两种方法的详细说明和示例代码:
使用 == 运算符
== 运算符用于比较两个 QString 对象是否相等。如果相等,返回 true;否则,返回 false。
#include <QString>
#include <QDebug>
int main() {
QString str1 = "hello";
QString str2 = "hello";
QString str3 = "world";
if (str1 == str2) {
qDebug() << "str1 and str2 are equal.";
} else {
qDebug() << "str1 and str2 are not equal.";
}
if (str1 == str3) {
qDebug() << "str1 and str3 are equal.";
} else {
qDebug() << "str1 and str3 are not equal.";
}
return 0;
}
使用 compare() 函数
compare() 函数提供了更灵活的比较方式,可以指定是否区分大小写等。该函数返回一个整数:如果字符串相等,返回0;如果当前字符串小于参数字符串,返回负值;如果当前字符串大于参数字符串,返回正值。
#include <QString>
#include <QDebug>
int main() {
QString str1 = "hello";
QString str2 = "hello";
QString str3 = "world";
if (str1.compare(str2) == 0) {
qDebug() << "str1 and str2 are equal.";
} else {
qDebug() << "str1 and str2 are not equal.";
}
if (str1.compare(str3) == 0) {
qDebug() << "str1 and str3 are equal.";
} else {
qDebug() << "str1 and str3 are not equal.";
}
return 0;
}
忽略大小写的比较
如果你需要忽略大小写进行比较,可以使用 compare 函数的另一种形式,传递 Qt::CaseInsensitive 作为参数。
#include <QString>
#include <QDebug>
int main() {
QString str1 = "Hello";
QString str2 = "hello";
if (str1.compare(str2, Qt::CaseInsensitive) == 0) {
qDebug() << "str1 and str2 are equal ignoring case.";
} else {
qDebug() << "str1 and str2 are not equal ignoring case.";
}
return 0;
}
通过以上几种方法,你可以根据实际需求选择最适合的方式来比较 QString 对象的相等性。
7495

被折叠的 条评论
为什么被折叠?



