C++ Builder 參考手冊 ? System::Sysutils ? AnsiStrLComp
比較兩個字符串前面 MaxLen 個 WideChar烛谊,使用當前的地區(qū)和語言,區(qū)分大小寫嘉汰。
頭文件:#include <System.SysUtils.hpp>
命名空間:System::Sysutils
函數(shù)原型:
int __fastcall AnsiStrLComp(System::WideChar * S1, System::WideChar * S2, unsigned MaxLen);
參數(shù):
- S1:要比較的字符串1丹禀,System::WideChar 類型;
- S2:要比較的字符串2,System::WideChar 類型双泪;
- MaxLen:比較的 WideChar 個數(shù)持搜,這個函數(shù)并不管 \0 結(jié)束符在哪里,\0 和普通字符一樣對待焙矛,不作為結(jié)束比較的條件葫盼,如果字符串長度不夠 MaxLen 個 WideChar,這個函數(shù)會穿過 \0 繼續(xù)比較村斟,一直到 MaxLen 個 System::WideChar 結(jié)束
返回值:
- 0: S1==S2
- >0: S1>S2
- <0: S1<S2
- 比較兩個字符串贫导,使用當前的地區(qū)和語言,區(qū)分大小寫邓梅,區(qū)分大小寫的語言不限于英語脱盲,例如 āωπ 是小寫邑滨,對應(yīng)的大寫是 āΩΠ日缨;
- 漢字比較大小,也是和地區(qū)相關(guān)的掖看,中國大陸默認排序按照漢語拼音對應(yīng)的英語字母順序排列的匣距,而中國的港澳臺地區(qū)默認按照漢字的筆畫數(shù)順序排列的,例如:
? 大陸:"玄" > "坴"哎壳,因為按照漢語拼音 "xuan" > "lu" 這樣比較的毅待;
? 港澳臺:"玄" < "坴",因為按照漢字筆畫數(shù) 5 < 8 這樣比較的归榕;
如果讀音或筆畫數(shù)相等尸红,不同的漢字也是不等的,具體怎樣比較大小不在本文敘述范圍之內(nèi)刹泄; - 這個函數(shù)的執(zhí)行規(guī)則和 AnsiCompareStr 是相同的外里,區(qū)別是這個函數(shù)只比較前面 MaxLen 個 WideChar;
- 這個函數(shù)的參數(shù)都是 System::WideChar 類型的了特石,雖然函數(shù)名以 Ansi 開頭盅蝗,實際上是 UNICODE (UTF-16) 編碼。參數(shù)為 char 或 AnsiString 類型的函數(shù)都移到 System.AnsiStrings.hpp 這個頭文件里面了姆蘸,參數(shù)為 char 或 AnsiString 類型的函數(shù)都看作過時的函數(shù)墩莫,不建議使用了;
- 問題1:使用這個函數(shù) Borland 編譯器會出現(xiàn)使用過時了的函數(shù)的警告 (屬于誤報)逞敷,即使參數(shù)是 System::WideChar * (或 wchar_t *) 類型狂秦,而 clang 32 和 clang 64 編譯器在使用 System::WideChar * (或 wchar_t *) 類型的參數(shù)不會有警告;
- 問題2:AnsiStrLIComp 會穿過 \0 結(jié)束符繼續(xù)比較推捐, 直到 MaxLen 個 WideChar 結(jié)束裂问;函數(shù) std::wcsncmp 和 std::_lwcsncoll 遇到 \0 結(jié)束符會結(jié)束比較,但是需要用 std::_wsetlocale 指定地區(qū)和語言,不是使用當前的地區(qū)和語言愕秫。
相關(guān):
- System::Sysutils::AnsiSameStr
- System::Sysutils::AnsiSameText
- System::Sysutils::AnsiCompareStr
- System::Sysutils::AnsiCompareFileName
- System::Sysutils::AnsiCompareText
- System::Sysutils::AnsiStrComp
- System::Sysutils::AnsiStrIComp
- System::Sysutils::AnsiStrLComp
- System::Sysutils::AnsiStrLIComp
- System::Sysutils::CompareMem
- System::Sysutils::CompareStr
- System::Sysutils::CompareText
- System::Sysutils::StrComp
- System::Sysutils::StrIComp
- System::Sysutils::StrLComp
- System::Sysutils::StrLIComp
- System::Sysutils::WideCompareStr
- System::Sysutils::WideCompareText
- System::Sysutils
- strcmp, _strcmp, _fstrcmp, _tcscmp, wcscmp
- strncmp, _fstrncmp, _tcsncmp, _tcsnccmp, wcsncmp
- stricmp, _stricmp, _fstricmp, strcmpi, _strcmpi, _tcsicmp, _tcscmpi, _wcsicmp, wcscmpi, _wcscmpi
- strnicmp, _strnicmp, _fstrnicmp, strncmpi, _tcsnicmp, _tcsncicmp, _tcsncmpi, _wcsnicmp, wcsncmpi, _wcsncmpi
- <cstring>
C++ Builder 參考手冊 ? System::Sysutils ? AnsiStrLComp