人物分类

2024-03-27

又是一个简单的问题:有一个std::string,根据用户的语言和区域设置(区域设置)确定哪些字符是数字、符号、空格等。

我设法使用以下命令将字符串拆分为一组字符boost 区域设置边界分析工具 http://www.boost.org/doc/libs/1_55_0/libs/locale/doc/html/boundary_analysys.html:

std::string text = u8"生きるか死ぬか";

boost::locale::boundary::segment_index<std::string::const_iterator> characters(
    boost::locale::boundary::character,
    text.begin(), text.end(),
    boost::locale::generator()("ja_JP.UTF-8"));

for (const auto& ch : characters) {
    // each 'ch' is a single character in japanese language
}

然而,我还没有看到任何方法来确定是否ch是数字、符号或其他任何东西。 有boost字符串分类算法 http://www.boost.org/doc/libs/1_53_0/doc/html/string_algo/reference.html#header.boost.algorithm.string.classification_hpp,但这些似乎不起作用......无论如何*segment_index::iterator is.

我也不能申请std::isalpha(std::locale) http://en.cppreference.com/w/cpp/locale/isalpha,因为我不确定是否可以将升压段转换为char or wchar_t.

有什么简洁的方法来对符号进行分类吗?


有许多函数和对象支持这一点<locale>但是...您给出的示例文本看起来像 UTF-8, 这是一种多字节编码,并且函数<locale>不适用于多字节编码。

我建议你获取 ICU 库并使用它。其中 事物,它允许测试中定义的所有属性 Unicode 字符数据库。它还具有宏或函数 用于迭代一个字符串(或至少一个数组)char), 一次提取一个 UTF_32 代码点(这就是您想要的 想要测试)。

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

人物分类 的相关文章

  • 为什么 VB.NET 和 C# 中针对值检查 null 存在差异?

    In VB NET http en wikipedia org wiki Visual Basic NET有时候是这样的 Dim x As System Nullable Of Decimal Nothing Dim y As System
  • 键盘加速器在 UWP 应用中停止工作

    我正在尝试将键盘加速器添加到 UWP 应用程序中的 CommandBar 菜单项 当应用程序启动时 这工作正常 但在我第一次打开溢出菜单后 加速器停止工作 这似乎不会发生在主要命令 菜单之外 上 只有溢出菜单内的辅助命令才会发生 此外 单击
  • 如何在不实例化一个类的情况下检查它是否继承了另一个类? [复制]

    这个问题在这里已经有答案了 假设我有一个如下所示的类 class Derived some inheritance stuff here 我想在我的代码中检查类似的内容 Derived is SomeType 但看起来像is运算符需要 De
  • Qt 计算和比较密码哈希

    目前正在 Qt 中为测验程序构建面向 Web 的身份验证服务 据我了解 在数据库中存储用户密码时 必须对其进行隐藏 以防落入坏人之手 流行的方法似乎是添加的过程Salt https en wikipedia org wiki Salt cr
  • Paradox 表 - Oledb 异常:外部表不是预期的格式

    我正在使用 Oledb 从 Paradox 表中读取一些数据 我遇到的问题是 当我将代码复制到控制台应用程序时 代码可以工作 但在 WinForms 中却不行 两者都以 x86 进行调试 我实际上只是复制代码 在 WinForms 应用程序
  • 有没有办法使用 i387 fsqrt 指令获得正确的舍入?

    有没有办法使用 i387 fsqrt 指令获得正确的舍入 除了改变精确模式在 x87 控制字中 我知道这是可能的 但这不是一个合理的解决方案 因为它存在令人讨厌的重入型问题 如果 sqrt 操作中断 精度模式将出错 我正在处理的问题如下 x
  • 存储过程上的 OdbcCommand - 输出参数上出现“未提供参数”错误

    我正在尝试执行存储过程 通过 ODBC 驱动程序针对 SQL Server 2005 但收到以下错误 过程或函数 GetNodeID 需要参数 ID 但未提供该参数 ID 是我的过程的 OUTPUT 参数 在存储过程中指定了一个输入 mac
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • 单线程公寓问题

    从我的主窗体中 我调用以下命令来打开一个新窗体 MyForm sth new MyForm sth show 一切都很好 但是这个表单有一个组合框 当我将其 AutoCompleteMode 切换为建议和追加时 我在显示表单时遇到了这个异常
  • 指向字节数组的指针

    由于 Misra C 的要求 我的一位同事想要使用指针声明 但我遇到了一些问题 Misra 安全关键指南 不会让我们纯粹的程序员使用指针 但会让我们对数组字节进行操作 他打算获取一个指向字节数组的指针 因此我们不会在堆栈上传递实际的数组 T
  • 以编程方式更新 ClickOnce 应用程序的部署清单会导致缺少 4.0 中所需的 <兼容框架> 元素

    我正在致力于自动化 NET 4 0 ClickOnce WPF 应用程序的安装程序 该应用程序需要在应用程序配置文件 我经历了寻找必须遵循的具体步骤的棘手过程Mage exe http msdn microsoft com en us li
  • 如何用 C 语言练习 Unix 编程?

    经过五年的专业 Java 以及较小程度上的 Python 编程并慢慢感觉到我的计算机科学教育逐渐消失 我决定要拓宽我的视野 对世界的一般用处 并做一些 对我来说 感觉更重要的事情就像我真的对机器有影响一样 我选择学习 C 和 Unix 编程
  • 错误左值需要作为赋值C++的左操作数

    整个程序基本上只允许用户移动光标 如果用户位于给定的坐标范围 2 2 内 则允许用户键入输入 我刚刚提供了一些我认为足以解决问题的代码 我不知道是什么导致了这个问题 你能解释一下为什么会发生吗 void goToXY int int 创建一
  • 将非算术类型作为参数传递给 cmath 函数是否有效?

    给定以下用户定义类型S具有转换功能double struct S operator double return 1 0 以及以下调用cmath http en cppreference com w cpp header cmath使用类型的
  • 设计 Javascript 前端 <-> C++ 后端通信

    在我最近的将来 我将不得不制作一个具有 C 后端和 Web 前端的系统 要求 目前 我对此了解不多 我认为前端将触发数据传输 而不是后端 所以不需要类似 Comet 的东西 由于在该领域的经验可能很少 我非常感谢您对我所做的设计决策的评论
  • #pragma pack(16) 和 #pragma pack(8) 的效果总是相同吗?

    我正在尝试使用来对齐数据成员 pragma pack n http msdn microsoft com en us library 2e70t5y1 28v vs 100 29 aspx 以下面为例 include
  • 纯虚函数可能没有内联定义。为什么?

    纯虚函数是那些虚函数并且具有纯说明符 0 第 10 4 条第 2 款C 03 的内容告诉我们什么是抽象类 顺便说一句 如下 注意 函数声明不能 同时提供纯说明符和定义 尾注 示例 struct C virtual void f 0 ill
  • 使用 Chrome 和 Selenium 设置 LocalStorage

    我正在尝试使用 OpenQA Selenium 和 Chrome 设置本地存储键和值 我认为这相当微不足道 但我似乎无法让它发挥作用 我对 C 很陌生 所以我可能错过了一些东西 无论如何 我有这个功能 public static void
  • C# 粘贴到文本框时检查剪贴板中的字符

    有没有一些方法可以在粘贴到文本框 C 之前仅检查剪贴板中的字符 Ctrl V 和右键单击 gt 粘贴 但不使用 MaskedTextbox 在文本框文本更改中添加规则以仅接受数字 例如 private string value privat
  • 无法使 Polly 超时策略覆盖 HttpClient 默认超时

    我正在使用 Polly 重试策略 并且正如预期的那样 在重试过程中HttpClient达到 100 秒超时 我尝试了几种不同的方法来合并 Polly 超时策略 将超时移至每次重试而不是总计 但 100 秒超时仍然会触发 我读过大约 5 个

随机推荐

  • 从lua中的函数返回多个值

    我正在尝试以下 lua 代码 function test return 1 2 end function test2 return test end function test3 return test 3 end print test p
  • 如何在ios中永远运行后台服务以同步数据

    您好 我正在开发一个应用程序 它需要在网络服务器上进行同步操作 数据提交和检索 用户可以离线提交表单 即将数据存储到设备上的本地数据库 只要网络可用 后台服务就应该将这些数据提交到网络服务器 后台服务具体需求如下 后台服务会先检查网络是否可
  • Bluecove:以编程方式重新启动蓝牙堆栈

    我正在尝试关闭蓝牙服务 但 Bluecove 在连接关闭方法上有错误 https code google com p bluecove issues detail id 90 https code google com p bluecove
  • 如何编写能够验证 URI 的正则表达式模式?

    一个人如何着手创作一部正则表达式与所有有效 URI 字符串匹配 但无法与所有无效 URI 字符串匹配 为了具体说明我在提到 URI 时所指的内容 我在下面添加了最新 URI RFC 标准的链接 它定义了我想要使用正则表达式验证的实体 我不需
  • 如何在cpanel上托管Spring boot应用程序?

    我有一个 Spring boot 应用程序 我想将其托管在我的 VPS 服务器 cpanel 中 我正在使用最新版本的 cpanel 和 WHM 以及 easyapache 4 我完全按照该网站上的步骤操作 https dzone com
  • 在 AWK 脚本输出中的字段周围添加双引号吗?

    我编写了一个 awk 脚本 它将分发器平面文件转换为可导入 Magento 的 CSV 该文件以分号分隔 它没有像进口商要求的那样在每个字段周围加上引号 它工作得相当好 但在没有包含双引号的情况下导致数据导入出现一些问题 我花了几个小时试图
  • 使用 ReactiveCocoa 从对象数组链接异步操作

    我有一个实体数组 我想对这些实体执行异步操作 这些操作应该链接起来 并以与数组中的实体相同的顺序运行 我是 RAC 新手 在 RAC 中如何做到这一点 首先 您需要一个执行异步操作的包装方法 该方法将返回一个信号 我们假设异步操作需要一个完
  • std::max - 需要一个标识符

    我有问题std max 我想不通 int border 35 int myInt 2 int myOtherInt 3 int z std max myInt 2 border myOtherInt 2 border 我已经包含了算法标准头
  • 操作栏后退按钮不起作用

    在这些的帮助下安卓文档 http developer android com training implementing navigation ancestral html NavigateUp 我正在尝试做一个操作栏后退按钮 我得到一个操
  • pyttsx:没有名为“engine”的模块

    我正在尝试使用安装 TTS 包this http pyttsx readthedocs org en latest install html 一切都很好 直到我尝试执行以下命令 import pyttsx 我收到了这个错误 File usr
  • 从 GitHub 更新所有包

    我知道你可以使用以下语法从 CRAN 安装软件包 install packages c Rcpp dependencies TRUE 您可以使用以下命令从 CRAN 更新所有内容 update packages 另一方面 您可以使用以下命令
  • 没有虚拟方法 verifyPhoneNumber,致命异常:main

    将库更新到 Gradle 文件后 我在尝试通过电话号码进行身份验证后遇到此错误 beginning of crash 2020 11 04 00 33 11 574 23042 23042 com roko hearth E Android
  • Terraform:如何有条件地将 EBS 卷分配给 ECS 集群

    我有一个ecs cluster定义 ECS 集群的模块 我希望该模块可以重复使用 这样我就可以创建具有不同配置的各种集群 因此 我希望能够选择指定是否在 ECS 主机的启动配置中创建和附加 EBS 卷 我最初尝试使用count in the
  • Akka 2.1.2 Scheduler 出现问题(“系统”无法识别)

    根据这些示例 我试图运行一个非常简单的循环函数循环 http doc akka io docs akka 2 1 2 scala scheduler html http doc akka io docs akka 2 1 2 scala s
  • 如何在一个项目的不同版本中包含第 3 方代码

    我手上有一个有趣的问题 但我不太清楚处理它的正确方法 这是特定于 sitecore 的 但我想这个问题的解决方案可以应用于拥有多个运行不同版本框架的网站的任何人 现在我有 3 个独立的网站 运行 Sitecore 作为网站的框架和 CMS
  • Python - Win32Com - Outlook - 将今天发送的项目转发到收件箱

    我正在尝试创建一个脚本 将每天上午 8 00 起所有 Outlook 发送的项目转发到专用收件箱 该邮件必须保存在 Outlook 的已发送邮件文件夹中 目前我拥有今天的所有电子邮件 但脚本的转发部分不起作用 我没有任何错误消息 编辑 1
  • 数组数组中的 JavaScript 嵌套过滤器

    我有一个以下格式的对象数组 var full list pid 1 items item id 9 item id 10 item id 12 pid 2 items item id 33 item id 22 i
  • Tornado 非阻塞 SMTP 客户端

    我正在寻找 python 异步 SMTP 客户端以将其与 Torando IoLoop 连接 我发现只有简单的实现 http tornadogists org 907491 http tornadogists org 907491 但它是一
  • 尝试读取宽字符会给出 EOF

    我有一个文本文件 foo txt 包含以下内容 R 2 我有一个大型程序读取它并对每个角色执行操作 但当它到达时它总是收到 EOF 这是代码的相关部分 setlocale LC ALL FILE in fopen argv 1 r whil
  • 人物分类

    又是一个简单的问题 有一个std string 根据用户的语言和区域设置 区域设置 确定哪些字符是数字 符号 空格等 我设法使用以下命令将字符串拆分为一组字符boost 区域设置边界分析工具 http www boost org doc l