AnsiStrComp - C++ Builder

C++ Builder 參考手冊 ? System::Sysutils ? AnsiStrComp


比較兩個字符串,使用當(dāng)前的地區(qū)和語言,區(qū)分大小寫。

頭文件:#include <System.SysUtils.hpp>
命名空間:System::Sysutils
函數(shù)原型:

int __fastcall AnsiStrComp(System::WideChar * S1, System::WideChar * S2);

參數(shù):

S1: 要比較的字符串1,System::WideChar 類型;
S2: 要比較的字符串2,System::WideChar 類型;

返回值:

0: S1==S2
>0: S1>S2
<0: S1<S2

  • 比較兩個字符串,使用當(dāng)前的地區(qū)和語言,區(qū)分大小寫,區(qū)分大小寫的語言不限于英語,例如 āωπ 是小寫,對應(yīng)的大寫是 āΩΠ;
  • 漢字比較大小,也是和地區(qū)相關(guān)的,中國大陸默認(rèn)排序按照漢語拼音對應(yīng)的英語字母順序排列的,而中國的港澳臺地區(qū)默認(rèn)按照漢字的筆畫數(shù)順序排列的,例如:
    ? 大陸:"玄" > "坴",因?yàn)榘凑諠h語拼音 "xuan" > "lu" 這樣比較的;
    ? 港澳臺:"玄" < "坴",因?yàn)榘凑諠h字筆畫數(shù) 5 < 8 這樣比較的;
    如果讀音或筆畫數(shù)相等,不同的漢字也是不等的,具體怎樣比較大小不在本文敘述范圍之內(nèi);
  • 這個函數(shù)的執(zhí)行結(jié)果和 AnsiCompareStr 是相同的,區(qū)別是參數(shù)的變量類型不同;
  • 這個函數(shù)的參數(shù)都是 System::WideChar 類型的了,雖然函數(shù)名以 Ansi 開頭,實(shí)際上是 UNICODE (UTF-16) 編碼。參數(shù)為 char 或 AnsiString 類型的函數(shù)都移到 System.AnsiStrings.hpp 這個頭文件里面了,參數(shù)為 char 或 AnsiString 類型的函數(shù)都看作過時的函數(shù),不建議使用了。
  • 問題:使用這個函數(shù) Borland 編譯器會出現(xiàn)使用過時了的函數(shù)的警告 (屬于誤報(bào)),即使參數(shù)是 System::WideChar * (或 wchar_t *) 類型,而 clang 32 和 clang 64 編譯器在使用 System::WideChar * (或 wchar_t *) 類型的參數(shù)不會有警告,如果必須使用 Borland 編譯器并且很在意這個警告,可以使用 AnsiCompareStr 代替。

例子:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int r = Sysutils::AnsiStrComp(Edit1->Text.c_str(), Edit2->Text.c_str());
    if(r > 0)
        ShowMessage(Edit1->Text + L" > " + Edit2->Text);
    else if(r < 0)
        ShowMessage(Edit1->Text + L" < " + Edit2->Text);
    else
        ShowMessage(Edit1->Text + L" == " + Edit2->Text);
}

運(yùn)行結(jié)果:

不同地區(qū)漢字比較大小的結(jié)果是不同的:
大陸:"玄" > "坴",因?yàn)榘凑諠h語拼音 "xuan" > "lu";
港澳臺:"玄" < "坴",因?yàn)榘凑諠h字筆畫數(shù) 5 < 8。

漢字比較大?。喊凑諠h語拼音
漢字比較大?。喊凑展P畫數(shù)

相關(guān):


C++ Builder 參考手冊 ? System::Sysutils ? AnsiStrComp

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容