我想将wstring
转换为小写。我发现使用语言环境信息有很多答案。 wstring
也有类似ToLower()
的功能吗?将wstring转换为小写
回答
std::towlower
是你想要的功能,从<cwtype>
。这个头文件包含很多处理宽字符串的函数。
实施例:
// Convert wstring to upper case
wstring wstrTest = L"I am a STL wstring";
transform(
wstrTest.begin(), wstrTest.end(),
wstrTest.begin(),
towlower);
我不认为这可以跨越多个代码单元的代码点正常工作。 – user2079303
@ user2079303 C++(和C在这里)要求任何支持的代码点都适合wchar_t。换句话说,这只是Windows上的一个问题。 (真正的问题在于,代码点中的案例映射不是1:1,并且与上下文相关,如其他评论所述) – Cubbi
@Cubbi窗口问题对大多数跨平台程序来说都是一个问题:)但是,的确如此不是一次转换一个代码单元无法工作的唯一原因。映射算法必须处理字符串作为一个整体才能正常工作。 – user2079303
希望帮助..
#include <iostream>
#include <algorithm>
int main()
{
std::wstring str = L"THIS TEXT!";
std::wcout << "Lowercase of the string '" << str << "' is ";
std::transform(str.begin(), str.end(), str.begin(), ::tolower);
std::wcout << "'" << str << "'\n";
return 0;
}
输出:
Lowercase of the string 'THIS TEXT!' is 'this text!'
与这种方法ta很好地合作 – Epirocks
- 1. 将wchar_t转换为wstring
- 2. 将wstring *转换为PWSTR
- 3. 将Wstring转换为CString
- 4. 将BSTR转换为wstring
- 5. 将CString转换为std :: wstring
- 6. 将wstring转换为WS_STRING
- 7. 将std :: wstring转换为SQLWCHAR *
- 8. 将char * argv []转换为wstring
- 9. 如何将wstring转换为LPOLESTR?
- 10. 如何将wchar_t *转换为wstring?
- 11. 如何将wstring转换为NSString
- 12. 如何将DWORD转换为wstring?
- 13. 在Linux上将wstring转换为jstring
- 14. 如何将wstring转换为wchar_t *? C++
- 15. 如何将std :: wstring转换为TCHAR *
- 16. 将字符串^转换为wstring C++
- 17. 从Wstring转换为CComBstr
- 18. C++ wstring的转换为Unicode
- 19. 将小写字母转换为大写
- 20. 将小写形式转换为大写?
- 21. 将小写字母转换为大写
- 22. CakePHP 2 - 将UserInputs转换为小写
- 23. jQuery append将值转换为小写
- 24. 将文件名转换为小写
- 25. 液体 - 将数组转换为小写
- 26. 将对象键转换为小写
- 27. 将char转换为小写批处理
- 28. 将MVC ViewBag属性转换为小写
- 29. 将字符串转换为小写
- 30. 如何将分词转换为小写
http://en.cppreference.com/w/cpp/string/wide/towlower –
请注意,“小写”是本地特定于语言环境的操作。在土耳其,'拖'('I'L)!='i'L'(结果实际上是''') –
事实上,案例转换是一场噩梦。如链接所述,根据单词中的位置,小写字母'Σ'是'σ'和'ς',德语中的小写字母“SS”是“ß”或“ss” - 取决于单词(“ MASSE“可以是”Maße“或”masse“,取决于它是哪一个单形图!)。更多细节请参见http://unicode.org/faq/casemap_charprop.html。 –