将 C++ 中的 unicode 字符串转换为大写

2024-02-03

我们如何在 C 或 C++ 中将多语言字符串或 unicode 字符串转换为大写/小写。


如果您的系统已经采用 UTF-8,请使用std::use_facet http://en.cppreference.com/w/cpp/locale/use_facet, 你可以写:

#include <iostream>
#include <locale.h>

int main() {
    std::locale::global(std::locale(""));  // (*)
    std::wcout.imbue(std::locale());
    auto& f = std::use_facet<std::ctype<wchar_t>>(std::locale());

    std::wstring str = L"Zoë Saldaña played in La maldición del padre Cardona.";

    f.toupper(&str[0], &str[0] + str.size());
    std::wcout << str << std::endl;

    return 0;
}

你得到(http://ideone.com/AFHoHC http://ideone.com/AFHoHC):

佐伊·萨尔达尼亚 (ZOË SALDAÑA) 曾在《卡多纳神父》中效力。

如果它不起作用,你将不得不改变(*) into std::locale::global(std::locale("en_US.UTF8"));或者您在平台上实际拥有的 UTF-8 语言环境。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 C++ 中的 unicode 字符串转换为大写 的相关文章

随机推荐

  • 高效创建可观察对象,从可观察集合中过滤特定项目

    我有一个 RxJS 主题 用于发布对集合的更改 每次集合发生变化时 主题都会将新内容作为数组发布 例如 let collectionSubject new Rx BehaviourSubject collectionSubject onNe
  • Chart.js 图表上的叠加线

    我想知道是否可以在 Chart js 图表上叠加一条线 例如折线图 例如 在 x 轴上 将在图表中的值 20 处绘制一条水平线 我创建了一个称为叠加图表的东西 并将其添加到我的 Chart js 分支中 https github com l
  • Angular 9 BaseComponent 与 @Injectable()

    在 Angular 8 中 我能够使用 Injectable 属性创建基本组件 继承实际组件的类 Angular 9 编译器告诉我 组件 YourComponent 从 BaseComponent 继承其构造函数 但后者没有自己的 Angu
  • 一州内的县等值区域地图

    我正在努力定制并找到正确的代码来构建分区统计图 我正试图通过特定州的县来获取企业的利润 到目前为止 我所做的是能够绘制我的代码 尽管使用了我不想要的调色板和不希望出现的中断 library choroplethr library ggplo
  • 同步 android gradle appcompat 27.0.1

    我是 android studio 的新手 不确定 gradle 设置 我已经下载了 Android API 27 这是我得到的错误 错误 无法解决 app debug compileClasspath 的依赖关系 无法解析 com and
  • WebGL 中的透明纹理行为

    环境 WebGL Chrome 当使用透明 png 作为模型纹理时 我有以下行为 图像 A 树将建筑物隐藏在其后面 我看到了世界框纹理 它也隐藏自己 后面的分支不可见 同时 图像 B 工作正常 窗口是透明的 我可以看到后面的内容 A B 两
  • 如何匹配Python中封装在列表中的两个字典的键?

    我有两本词典 位于列表中 该列表如下所示 10 1 1 0 1 10 1 1 1 2 10 1 1 0 3 10 1 1 1 4 我需要的是相同的键 即匹配的 ip 我想要相应的数字或值 因此示例输出如下所示 10 1 1 0 1 10 1
  • 优雅地停止 Docker 容器

    我无法理解当容器停止时如何进行一些清理 为了方便起见 我准备了一个示例来重现该问题 以下是我的文件的内容 Dockerfile FROM opensuse latest Install tcsh non interactive mode R
  • 如何使用MACROS(VBA)获取Excel中最后一个非空单元格的地址

    我想获取 Excel 工作表中最后一个非空单元格的单元格地址 基本上我想要最后一个非空单元格的行号和列号 名称 我发现很少有答案可以找出最后一个非空单元格中的值 但我需要单元格地址而不是内容 对于这样的数据 大多数人都希望找到Blue ce
  • 如何在默认的 Eclipse XML 编辑器中显示拼写建议列表?

    我启用了默认的 Eclipse 拼写检查器 当我在 Java 编辑器中工作时检测到拼写错误时 我可以使用Ctrl 1显示建议的拼写更正列表 然而 当我使用默认的 XML 编辑器时 Ctrl 1似乎不起作用 拼写错误的单词 主要是在评论中 正
  • preg_split 意外行为

    I use 预分割 http php net manual en function preg split php如下
  • 无法推送到 Google 容器注册表(无法访问存储库)

    每当我尝试从本地计算机将容器推送到 Google 容器注册表时 都会收到以下错误 被拒绝 无法访问存储库 请检查您是否有权访问它 如果我打开 Cloud Shell 我可以毫无问题地推送容器 我曾多次尝试执行 gcloud auth log
  • 如何使用 EclipseLink 和 Spring 配置动态编织?

    如何使用 EclipseLink 和 Spring 配置动态编织 现在我正在尝试让它与 Junit 测试一起工作 但稍后我必须让它与 Tomcat 一起工作 我的部门已经标准化它大约 10 年了 我遇到两个主要问题 1 Spring需要一个
  • 矩阵中元素的频率 - Matlab

    从我在 matlab 中运行的函数中我得到一个 225x400 矩阵 我想计算这个矩阵中每个元素的频率 这意味着我需要计算每个元素在矩阵上出现的次数 我的矩阵名称是 Idiff 我在用 B unique Idiff 找到 Idiff 矩阵中
  • Android TV以编程方式切换HDMI输入端口

    我想问一下经验丰富的程序员 是否有一种方法可以通过直接安装在电视 Sony Bravia 上的应用程序以编程方式切换 HDMI 输入端口 比方说 在应用程序启动时 电视将其输入切换为 HDMI3 Android 中有通用的 API 还是特定
  • 消除外边距 (Ggplot2 / geom_sf)

    我一直想知道是否可以避免 Ggplot2 包含这个外部边距 绘图区域周围黑框之外的空白区域 我认为又名绘图边距 下面是我的代码 我可以很好地控制绘图边距 但我尝试了不同的方法来减少外部边距 但到目前为止没有任何效果 我还想澄清一下 我知道在
  • 具有特殊条件的子集和

    在您回复另一个问题的链接或将其作为重复项关闭之前 请仔细阅读该问题 这与该问题的标准变体不同 我已经搜索了很长时间 所以我很确定没有这里没有这样的问题 我需要找到是否最小可能的S这是一些的总和X i 的子集那是 gt T 某个目标值 小于全
  • elasticsearch索引已删除

    我的 Elasticsearch 服务器面临严重问题 我在 symfony2 项目上使用 ES 1 7 和 fosElasticaBundle 今天ES索引被删除了两次 我也搞不懂为什么 以下是我可以在 cluster log 中读取的日志
  • Tensorflow 入门 - 将图像分割为子图像

    这是我第一次使用卷积神经网络和 Tensorflow 我正在尝试实现一个能够extract来自数字视网膜图像的血管 我正在与公开可用的驱动数据库 http www isi uu nl Research Databases DRIVE 图像为
  • 将 C++ 中的 unicode 字符串转换为大写

    我们如何在 C 或 C 中将多语言字符串或 unicode 字符串转换为大写 小写 如果您的系统已经采用 UTF 8 请使用std use facet http en cppreference com w cpp locale use fa