1. ホーム
  2. c++

[解決済み】string::compareは、アルファベット順の判定に信頼性があるか?

2022-02-11 02:20:46

質問

簡単に言うと、入力が常に同じケース(ここでは小文字)であり、文字が常にASCIIである場合、string::compareを使って2つの文字列のアルファベット順を確実に決定することができるのでしょうか。

このように stringA.compare(stringB) が0なら同じ、負ならアルファベット順で文字列Aが文字列Bの前、正なら文字列Aが後になるのでしょうか?

どのように解決するのですか?

cplusplus.comのドキュメントによると。

このメンバ関数は、すべての の文字は、比較された が等しい場合、負の値 という文字がある場合、この値は との比較で、一致しない。 オブジェクトの方が比較する文字列よりも多い。 であり,その逆の場合は正の値である。 の場合。

つまり、ASCII順で文字列をソートすることになり、同じケースの英語文字列(発音記号などの拡張文字がない)についてはアルファベット順となります。