C++ Builder 参考手册 ➙ System::Sysutils ➙ AnsiCompareText
比较两个字符串,使用当前的地区和语言,不区分大小写。
头文件:#include <System.SysUtils.hpp>
命名空间:System::Sysutils
函数原型:
int __fastcall AnsiCompareText(
const System::UnicodeString S1,
const System::UnicodeString S2);
参数:
S1: 要比较的字符串1,UnicodeString 类型;
S2: 要比较的字符串2,UnicodeString 类型;
返回值:
0: S1==S2
>0: S1>S2
<0: S1<S2
- 比较两个字符串,使用当前的地区和语言,不区分大小写,不限于英语,例如 "āωπ" 和 "ĀΩΠ" 是相等的;
- 汉字比较大小,也是和地区相关的,中国大陆默认排序按照汉语拼音对应的英语字母顺序排列的,而中国的港澳台地区默认按照汉字的笔画数顺序排列的,例如:
• 大陆:"玄" > "坴",因为按照汉语拼音 "xuan" > "lu" 这样比较的;
• 港澳台:"玄" < "坴",因为按照汉字笔画数 5 < 8 这样比较的;
如果读音或笔画数相等,不同的汉字也是不等的,具体怎样比较大小不在本文叙述范围之内; - 这个函数的参数都是 UnicodeString 类型的了,虽然函数名以 Ansi 开头,参数为 AnsiString 类型的函数都移到 System.AnsiStrings.hpp 这个头文件里面了,参数为 AnsiString 类型的函数都看作过时的函数,不建议使用了。
例子:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int r = Sysutils::AnsiCompareText(Edit1->Text, Edit2->Text);
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);
}
运行结果:
如果不区分大小写:
"ΣωπX" 和 "σΩΠx" 相等;
"ΣωπX" 小于 "σΩΠy",因为英语字母 'x' < 'y',其他部分认为相等。
相关:
- System::Sysutils::AnsiCompareFileName
- System::Sysutils::AnsiCompareStr
- 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 ➙ AnsiCompareText