文字列リテラルを比較する方法

QtではQStringのcompare()関数を用いて文字列の大小を比較できます。この関数は複数のオーバーロードが用意されています。

  1. 文字列の大小順序を、別の文字列otherと比較します。csがQt::CaseSensitiveならば、大文字小文字を区別して比較します。csがQt::CaseInsensitiveならば、大文字小文字を区別しないで比較します。負の値を返せば、文字列の方が小さいことを示し、0を返せば、2つの文字列が等しいことを示し、正の値を返せば、文字列の方が大きいことを示します。

彼らは助けを求めた。
彼らは救いを求めた。

QString str1 = "abc";
QString str2 = "def";
int result = str1.compare(str2);
if(result < 0) {
    qDebug() << "str1 is smaller than str2";
} else if(result > 0) {
    qDebug() << "str1 is greater than str2";
} else {
    qDebug() << "str1 is equal to str2";
}
  1. ロケールを考慮した 대소문자 감안 문자열 비교 연산을 수행합니다.

日本語でネイティブに言い換えてください。一つの選択肢だけでいいです。例:

QString str1 = "abc";
QString str2 = "ABC";
int result = str1.localeAwareCompare(str2);
if(result < 0) {
    qDebug() << "str1 is smaller than str2";
} else if(result > 0) {
    qDebug() << "str1 is greater than str2";
} else {
    qDebug() << "str1 is equal to str2";
}
  1. 第一の形式と似ているが、QStringRefをパラメータとして受け取る。

注意が必要なのは、これらの関数が返す結果はunicode文字コードの順序比較に基づいているということです。

bannerAds