C++文字列を大文字から小文字に変換する組み込み関数はありますか? それを cstring に変換せず、各文字で tolower を使用することが唯一のオプションですか?
事前にどうもありがとうございました。
boost
オプションの場合:
#include <boost/algorithm/string.hpp>
std::string str = "wHatEver";
boost::to_lower(str);
それ以外の場合は、次を使用できますstd::transform
。
std::string str = "wHatEver";
std::transform(str.begin(), str.end(), str.begin(), ::tolower);
カスタムの locale-aware がある場合は、別の関数を使用することもできますtolower
。
std::transform(myString.begin(), myString.end(), myString.begin(), std::tolower);
ereOnが言うように:
std::transform(str.begin(), str.end(), str.begin(), std::tolower );
またはfor_each経由:
std::for_each(str.begin(), str.end(), std::tolower );
変換はおそらく2つのうちで優れています。
この問題については、STL の transform メソッドを使用して解決できます。
std::string str = "simple";
std::transform(str.begin(), str.end(), str.begin(), std::tolower);
これを行うための組み込み関数はありません。これを行うのは驚くほど複雑です。必要なものがあれtolower
ば、それが最善の策かもしれません。