小写字符串转句子大小写

发布于 2024-12-21 15:23:26 字数 246 浏览 2 评论 0原文

可能的重复:
将字符串中的第一个字母转换为大写

如何将字符串转换为C++ 中的标题大小写 “你好世界”到“你好世界”。该字符串甚至可以包含多字节字符

Possible Duplicate:
Convert first letter in string to uppercase

How do I convert a string to title case in C++
"hello world" to "Hello World" . The string can even have multibyte characters

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

咆哮 2024-12-28 15:23:26

好吧,如果您遵循上一个问题的建议,将字符串中的第一个字母转换为大写,您所需要做的就是将字符串拆分为每个单词,并将其大写。

std::wstring s = L"iron maiden";

if(s.length() > 0)
    s[0] = toupper(s[0]);

for(std::wstring::iterator it = s.begin() + 1; it != s.end(); ++it)
{
    if(!isalpha(*(it - 1)) &&
       islower(*it))
    {
        *it = toupper(*it);
    }
}

基本上,您只需要编写/使用解析器即可。

Well, if you follow the advice on your previous question, Convert first letter in string to uppercase, all you need to do is split the string into one word each, and uppercase it.

std::wstring s = L"iron maiden";

if(s.length() > 0)
    s[0] = toupper(s[0]);

for(std::wstring::iterator it = s.begin() + 1; it != s.end(); ++it)
{
    if(!isalpha(*(it - 1)) &&
       islower(*it))
    {
        *it = toupper(*it);
    }
}

Basically, you just have to write/use a parser.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文