c++11 标准模板(STL)本地化库 - std::tolower(std::locale) 用本地环境的 ctype 刻面将字符转换为小写

本地化库

本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析,以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C++ 标准库的其他组件的行为。

用本地环境的 ctype 刻面将字符转换为小写

std::tolower(std::locale)

template< class charT >
charT tolower( charT ch, const locale& loc );

用给定 loacale 的 std::ctype 平面所指定的转换规则,若可能则转换字符 ch 为小写。

参数

ch-字符
loc-本地环境

返回值

ch 的小写形式列于 locale 则返回它,否则返回不更改的 ch

注意

此函数只能进行 1:1 字符映射,例如希腊文大写字母 'Σ' 拥有二个小写形式,取决于在词中的位置: 'σ' 与 'ς' 。此情况下对 do_tolower 的调用不能获得正确的小写形式。

可能的实现

template< class charT >
charT tolower( charT ch, const std::locale& loc ) {return std::use_facet<std::ctype<charT>>(loc).tolower(ch);
}

调用示例

#include <iostream>
#include <locale>void try_with(wchar_t c, const char* locale)
{//用给定 loacale 的 std::ctype 平面所指定的转换规则,若可能则转换字符 ch 为小写。std::cout << "tolower('"<< c<< "', locale(\""<< locale<< "\")) returned "<< std::boolalpha<< std::tolower(c, std::locale(locale))<< std::endl;
}int main()
{//空格 (0x20, ' ')//换页(0x0c, '\f')//换行(0x0a, '\n')//回车(0x0d, '\r')//水平制表符(0x09, '\t')//垂直制表符(0x0b, '\v')std::cout << std::boolalpha;std::locale locale1;  // locale1 是经典 "C" 本地环境的副本std::cout << "locale1.name():   " << locale1.name() << std::endl;std::locale locale2("Chinese (Simplified)_China.936"); // locale2 为本地环境std::cout << "locale2.name():   " << locale2.name() << std::endl;const wchar_t tolowerC = L'\u042f'; // 西里尔大写字母 yatry_with(tolowerC, locale1.name().c_str());try_with(tolowerC, locale2.name().c_str());std::cout << std::endl;const wchar_t tolowerC2 = '1'; // ASCII '1'try_with(tolowerC2, locale1.name().c_str());try_with(tolowerC2, locale2.name().c_str());std::cout << std::endl;const wchar_t tolowerC3 = 1; // ASCII 1try_with(tolowerC3, locale1.name().c_str());try_with(tolowerC3, locale2.name().c_str());std::cout << std::endl;const wchar_t tolowerC4 = 'a'; // ASCII atry_with(tolowerC4, locale1.name().c_str());try_with(tolowerC4, locale2.name().c_str());std::cout << std::endl;const wchar_t tolowerC5 = ','; // ASCII ','try_with(tolowerC5, locale1.name().c_str());try_with(tolowerC5, locale2.name().c_str());std::cout << std::endl;const wchar_t tolowerC6 = ' '; // ASCII ' 'try_with(tolowerC6, locale1.name().c_str());try_with(tolowerC6, locale2.name().c_str());std::cout << std::endl;const wchar_t tolowerC7 = 'A'; //Atry_with(tolowerC7, locale1.name().c_str());try_with(tolowerC7, locale2.name().c_str());std::cout << std::endl;return 0;
}

输出

locale1.name():   C
locale2.name():   Chinese (Simplified)_China.936
tolower('1071', locale("C")) returned 1103
tolower('1071', locale("Chinese (Simplified)_China.936")) returned 1103tolower('49', locale("C")) returned 49
tolower('49', locale("Chinese (Simplified)_China.936")) returned 49tolower('1', locale("C")) returned 1
tolower('1', locale("Chinese (Simplified)_China.936")) returned 1tolower('97', locale("C")) returned 97
tolower('97', locale("Chinese (Simplified)_China.936")) returned 97tolower('44', locale("C")) returned 44
tolower('44', locale("Chinese (Simplified)_China.936")) returned 44tolower('32', locale("C")) returned 32
tolower('32', locale("Chinese (Simplified)_China.936")) returned 32tolower('65', locale("C")) returned 97
tolower('65', locale("Chinese (Simplified)_China.936")) returned 97

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/782595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java数组与集合框架(一) -- 数据结构,数组

数据结构 概述 为什么要讲数据结构&#xff1f; 任何一个有志于从事IT领域的人员来说&#xff0c;数据结构&#xff08;Data Structure&#xff09;是一门和计算机硬件与软件都密切相关的学科&#xff0c;它的研究重点是在计算机的程序设计领域中探讨如何在计算机中组织和存储…

座次问题(蓝桥杯)

文章目录 座次问题题目描述回溯算法 座次问题 题目描述 小 A 的学校&#xff0c;老师好不容易解决了蓝桥杯的报名问题&#xff0c;现在老师又犯愁了。 现在有 N 位同学参加比赛&#xff0c;但是老师想给他们排座位&#xff0c;但是排列方式太多了。 老师非常想弄明白最后的…

机器学习和神经网络8

在人工智能领域&#xff0c;神经网络和随机森林是两种强大的机器学习算法。神经网络&#xff0c;特别是深度学习网络&#xff0c;因其在图像和语音识别等复杂任务中的卓越性能而闻名。另一方面&#xff0c;随机森林是一种基于决策树的集成学习技术&#xff0c;它在处理分类和回…

Kafka硬核干货

目录 Kafka Kafka Producer Kafka Consumer Consumer Offset Log Manager 如何实现高吞吐、低延迟

编程题 2

文章目录 概要整体架构流程代码实现总结 概要 企业发放的奖金根据利润提成。 利润(I)低于或等于10万元时&#xff0c;奖金可提10%&#xff1b; 利润高于10万元&#xff0c;低于20万元时&#xff0c;低于10万元的部分按10%提成&#xff0c;高于10万元的部分&#xff0c;可提成…

ctfshow web入门 XXE

XXE基础知识 XXE&#xff08;XML External Entity&#xff09;攻击是一种针对XML处理漏洞的网络安全攻击手段。攻击者利用应用程序在解析XML输入时的漏洞&#xff0c;构造恶意的XML数据&#xff0c;进而实现各种恶意目的。 所以要学习xxe就需要了解xml xml相关&#xff1a; …

计算数组元素中每个元素与其之前各元素的累积乘积ndarray.cumprod()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算数组元素中每个元素 与其之前各元素的累积乘积 ndarray.cumprod() 选择题 关于以下代码输出的结果说法正确的是&#xff1f; import numpy as np a np.array([2,4,6]) print(【显示】a ,…

彩虹外链网盘界面UI美化版超级简洁好看

彩虹外链网盘界面UI美化版 彩虹外链网盘&#xff0c;是一款PHP网盘与外链分享程序&#xff0c;支持所有格式文件的上传&#xff0c;可以生成文件外链、图片外链、音乐视频外链&#xff0c;生成外链同时自动生成相应的UBB代码和HTML代码&#xff0c;还可支持文本、图片、音乐、…

Diffusion添加噪声noise的方式有哪些?怎么向图像中添加噪声?

添加噪声的方式大致分为两种&#xff0c;一种是每张图像在任意timestep都加入一样的均匀噪声&#xff0c;另一种是按照timestep添加不同程度的噪声 一、在任意timestep都加入一样的noise batch_size 32x_start torch.rand(batch_size,3,256,256) noise torch.randn_like(x_…

css的各种样式

一&#xff0c;css的样式选择器 1.1 字体相关 font font-fanmily 字体的样式默认为黑体font-size 字体大小font-style 字体风格 斜体font-width 字体的宽度 默认为400 1.2 文本相关 text-transform capitalize 首字母大写lowercase 全部小写uppercase 全部大写 text-alig…

.NET DES加密算法实现

简介&#xff1a; DES&#xff08;Data Encryption Standard&#xff09;加密算法作为一种历史悠久的对称加密算法&#xff0c;自1972年由美国国家标准局&#xff08;NBS&#xff09;发布以来&#xff0c;广泛应用于各种数据安全场景。本文将从算法原理、优缺点及替代方案等方…

XUbuntu22.04之激活Linux最新Typora版本(二百二十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

技巧 Win10电脑打开SMB协议共享文件,手机端查看

一. 打开 SMB1.0/CIFS文件共享支持 ⏹如下图所示&#xff0c;打开SMB1.0/CIFS文件共享支持 二. 开启网络发现 ⏹开启网络发现&#xff0c;确保共享的文件能在局域网内被发现 三. 共享文件夹到局域网 ⏹根据需要勾选需要共享的文件夹&#xff0c;共享到局域网 四. 共享文件查…

Linux重点思考(下)--shell脚本使用以及内核开发

Linux重点思考(下&#xff09;--shell脚本使用和组合拳 shell脚本的基础算法shell脚本写123...n的值&#xff0c;说思路Shell 脚本用于执行服务器性能测试的死循环Shell 脚本备份和定时清理垃圾文件 shell脚本的内核开发正向映射反向映射 shell脚本的基础算法 shell脚本写123……

单点登录原理与实现方案探究(二)

本系列文章简介&#xff1a; 本系列文章将深入探究Java中的单点登录原理与实现方案。首先&#xff0c;我们将介绍单点登录的基本原理&#xff0c;探讨其在多应用环境下的工作流程。然后&#xff0c;我们将详细讨论目前流行的三种单点登录实现方案我们将分析每种实现方案的优缺点…

WARNING: No output specified with docker-container driver

这个警告信息是说 docker build 出现的&#xff0c;指出你没有指定任何输出目的地&#xff0c;因此构建后的镜像不会被持久保存&#xff0c;只会存留在构建缓存中。以至于后面 docker tag 命令会找不到镜像&#xff0c;从而导致build 和push流程失败. 两种解决的做法&#xff…

JDBC远程连接mysql报错:NotBefore: Sat Mar 30 16:37:41 UTC 2024

虚拟机docker已经部署了mysql&#xff0c;用navicat可以直接远程连接&#xff0c;datagrip却不能&#xff0c;如图&#xff1a; 需要在最后加上 ?useSSLfalse , 如&#xff1a;jdbc:mysql://192.168.30.128:3306?useSSLfalse navicat不用加的原因是没有使用jdbc连接&#x…

java数据结构与算法刷题-----LeetCode1091. 二进制矩阵中的最短路径

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 广度优先双分裂蛇 广度优先双分裂蛇 双分裂蛇&#xff1a;是求二…

Linux 学习之路--工具篇--yum

前面介绍了权限有关的内容&#xff0c;这里继续介绍有关Linux里面常用的工具之一yum 目录 一、简单介绍 <1> 源代码安装 <2>rpm 包安装 <3>yum / apt-get(ubuntu) 安装 二、简单使用 <1>安装包介绍 <2> yum 的基本指令 -- install <…

C++:数据类型—布尔(12)

布尔类型代表就是真和假&#xff08;bool&#xff09; 真就是1&#xff08;true&#xff09; 假就是0&#xff08;false&#xff09; 也可以任务非0即为真 bool 直占用1个字节大小 语法&#xff1a;bool 变量名 (true | false&#xff09; 提示&#xff1a;bool在后期判断也是…