Given: auto foo = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"s
我可以通过以下方式将所有字符转换为小写:
use_facet<ctype<char>>(cout.getloc()).tolower(data(foo), next(data(foo), foo.size()));
Live Example http://ideone.com/rWzza8
但这取决于cout.getloc()
含有ctype<char>
facet
.
假设我使用的是未修改的cout
我可以假设cout.getloc()
将包含facet
ctype<char>
或者我需要在使用之前确认这一点:
has_facet<ctype<char>>(cout.getloc())
From 参考参数 http://en.cppreference.com/w/cpp/locale/locale:
C++ 程序中构造的每个语言环境至少包含以下标准方面 [...]:
- std::ctype
- ...
Any语言环境,意味着甚至不属于cout
对象将支持std::ctype<char>
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)