MT4(MQL4)/MT5(MQL5)のStringCompare
2 つの文字列の大小を比較します。
int StringCompare(
const string& string1, // 比較される1 番目の文字列
const string& string2, // 比較される2 番目の文字列
bool case_sensitive=true // 比較時の大文字と小文字の区別モードの選択
);
各コードページ(MQLの中の文字コードのようなもの)のアルファベット順に比較されます。(デフォルトはWindowsのANSI)
他にもMT5で使用されるコードページを見たい方はこちら(公式ページ)
MT4→MT5になっても変わらず使えます。
大文字小文字を区別する case_sensitive の初期値はtrue(区別する)です。
【戻り値】
string1 < string2 の場合は -1
string1 = string2 の場合は 0
string1 > string2 の場合は 1
サンプルコード
void OnInit()
{
string testa = "a";
string testb = "b";
Print("StringCompare(testa,testa) aとaを比較:");
Print(StringCompare(testa,testa));
Print("-----");
Print("StringCompare(testa,testb) aとbを比較:");
Print(StringCompare(testa,testb));
Print("-----");
Print("StringCompare(testb,testa) bとaを比較:");
Print(StringCompare(testb,testa));
Print("-----");
Print("-----");
string testA = "A";
Print("StringCompare(testa,testA,false) aとAを比較(大文字小文字を区別しない):");
Print(StringCompare(testa,testA,false));
Print("-----");
Print("StringCompare(testa,testA,true) aとAを比較(大文字小文字を区別する):");
Print(StringCompare(testa,testA,true)); Print("-----");
Print("StringCompare(testa,testA) aとAを比較(大文字小文字の区別を指定しない):");
Print(StringCompare(testa,testA));
return;
}
結果
StringCompare(testa,testa) aとaを比較:
0
-----
StringCompare(testa,testb) aとbを比較:
-1
-----
StringCompare(testb,testa) bとaを比較:
1
-----
StringCompare(testa,testA,false) aとAを比較(大文字小文字を区別しない):
0
-----
StringCompare(testa,testA,true) aとAを比較(大文字小文字を区別する):
-1
-----
StringCompare(testa,testA) aとAを比較(大文字小文字の区別を指定しない):
-1
【参考】MQL5公式ページ
コメント / Comments