17

C++文字列を大文字から小文字に変換する組み込み関数はありますか? それを cstring に変換せず、各文字で tolower を使用することが唯一のオプションですか?

事前にどうもありがとうございました。

4

6 に答える 6

31

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

于 2010-08-04T08:37:07.737 に答える
17
std::transform(myString.begin(), myString.end(), myString.begin(), std::tolower);
于 2010-08-04T08:39:52.927 に答える
2

ereOnが言うように: std::transform(str.begin(), str.end(), str.begin(), std::tolower );

またはfor_each経由: std::for_each(str.begin(), str.end(), std::tolower );

変換はおそらく2つのうちで優れています。

于 2010-08-04T08:44:05.823 に答える
1

この問題については、STL の transform メソッドを使用して解決できます。

std::string str = "simple";
std::transform(str.begin(), str.end(), str.begin(), std::tolower);
于 2010-08-04T10:35:47.573 に答える
0

これを行うための組み込み関数はありません。これを行うのは驚くほど複雑です。必要なものがあれtolowerば、それが最善の策かもしれません。

于 2010-08-04T08:36:49.063 に答える