新闻中心
C++ string大小写转换_C++ toupper与tolower用法
C++中通过的toupper和tolower函数结合std::transform实现字符串大小写转换,可对ASCII字符进行高效处理,支持原地转换或使用范围for循环自定义操作,但不适用于Unicode字符。

在C++中,对字符串进行大小写转换是一个常见的操作。虽然C++标准库没有直接提供像Python那样简洁的upper()或lower()方法,但我们可以借助<cctype></cctype>头文件中的toupper()和tolower()函数,结合std::transform来高效实现。
1. toupper 与 tolower 函数简介
toupper(int c) 和 tolower(int c) 是定义在<cctype></cctype>头文件中的C风格函数,用于将单个字符转换为大写或小写:
-
toupper(c):如果
c是小写字母(a-z),返回对应的大写字母(A-Z);否则返回原字符。 -
tolower(c):如果
c是大写字母(A-Z),返回对应的小写字母(a-z);否则返回原字符。
注意:这两个函数参数类型是int,通常传入char会自动提升,但处理时应确保字符值在unsigned char范围内,避免未定义行为。
2. 转换整个字符串为大写或小写
要对整个std::string进行大小写转换,最常用的方法是使用std::transform算法:
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
int main() {
std::string str = "Hello World!";
// 转换为大写
std::string upper_str = s
tr;
std::transform(upper_str.begin(), upper_str.end(), upper_str.begin(), ::toupper);
// 转换为小写
std::string lower_str = str;
std::transform(lower_str.begin(), lower_str.end(), lower_str.begin(), ::tolower);
std::cout << "Original: " << str << "\n";
std::cout << "Uppercase: " << upper_str << "\n";
std::cout << "Lowercase: " << lower_str << "\n";
return 0;
}
输出结果:
Lateral App
整理归类论文
85
查看详情
Original: Hello World! Uppercase: HELLO WORLD! Lowercase: hello world!
关键点:
-
::toupper和::tolower前面加::是为了明确使用全局命名空间中的C函数,避免与可能的同名函数冲突。 -
std::transform遍历字符串每个字符,应用指定函数后写回目标位置。
3. 原地转换与自定义处理
如果想直接修改原字符串,可以直接在原str上操作:
std::transform(str.begin(), str.end(), str.begin(), ::tolower);
也可以使用范围for循环,代码更直观:
for (auto& c : str) {
c = std::tolower(c);
}
这种方式便于添加额外逻辑,比如只转换特定条件的字符。
4. 注意事项
- 这些函数仅对ASCII字母有效,不支持Unicode(如中文、带重音符号的字符)。
- 非字母字符(数字、标点等)不会被改变。
- 确保包含
<cctype></cctype>头文件,否则toupper/tolower可能无法找到。
std::transform配合toupper和tolower的用法,就能轻松处理大多数C++字符串大小写转换需求。以上就是C++ string大小写转换_C++ toupper与tolower用法的详细内容,更多请关注其它相关文章!
# 遍历
# 卖车都用什么网站推广呢
# 上海自考网站建设需要
# 阳信全网营销推广
# 淘宝seo52feicheng
# 大同网站网络推广哪家好
# 浦江网站排名优化
# 柳江区网站建设哪家强
# 虎门装修公司网站建设
# 西安美食营销推广专家
# 电影网站推广流程
# 相关文章
# 我们可以
# 适用于
# python
# 就能
# 是一个
# 尼克
# 自定义
# 头文件
# 转换为
# 标准库
# stream
# ios
# c++
# ai
# go
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
J*aScript对象创建方式_J*aScript设计模式应用
Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法
sublime怎么格式化代码_sublime代码美化与一键排版插件配置
ArchiveofOurOwn小说阅读-ArchiveofOurOwn同人作品访问链接
TikTok国际版官网直达_TikTok国际版官网直达进入在线观看
qq音乐在线播放入口_qq音乐电脑版登录链接
Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法
如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略
C#中解析不规范的HTML为XML 常见的坑与解决办法
mcjs网页版在线存档 mcjs云存档登录入口
c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换
Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口
C++ string find函数返回值npos详解_C++字符串查找失败的判断条件
解决Python logging 中 datefmt 导致时间戳固定不变的问题
《主播少女的秘密账号迷宫》首支宣传片
文心一言怎样用插件调度API数据_文心一言用插件调度API数据【API调用】
漫蛙漫画网页端入口 漫蛙2官方正版漫画站点
谷歌浏览器无痕模式怎么开 Chrome开启无痕浏览设置方法【教程】
TikTok搜索结果不显示如何解决 TikTok搜索刷新优化方法
必由学官网快捷入口 必由学网页版在线学习平台
J*aScript中正确使用querySelectorAll与复杂CSS选择器
汽水音乐在线解析 汽水音乐在线解析入口
yy漫画网页版官方入口_yy漫画官网登录页面链接
快手极速版在线观看 官方网页版登录地址
马斯克:Optimus 人形机器人复数形式为 Optimi
精准捕获:如何在页面中监听除特定元素外的所有点击事件
2025-2030年全球乘用车销量预测:新能源成增长主力
印象笔记怎样用批量导出备知识库_印象笔记用批量导出备知识库【备份方法】
抖音极速版最新版本 抖音极速版官方下载地址
Lar*el如何生成PDF或Excel文件_Lar*el文档导出工具与使用教程
Win11如何使用Windows Sandbox Win11沙盒功能开启与使用教程【详解】
J*aScript中管理异步API调用:确保操作顺序与数据一致性
Go语言JSON解析深度指南:动态访问与结构体映射实践
Win10双系统截图高效法 截屏快捷键速记【技巧】
J*aScript类型检查_j*ascript代码规范
qq浏览器如何查看和导出已保存的密码 qq浏览器密码管理器数据备份教程
Golang如何测试channel通信行为_Golang channel通信测试与分析方法
J*aScript Promise链中如何正确终止后续.then执行并处理错误
Win11怎么开启卓越性能模式 Win11电源选项启用高性能释放硬件潜力【方法】
邮政快递单号查询入口 邮政快递物流信息在线查询入口
Win11怎么合并任务栏图标 Win11开启任务栏合并减少图标占空间【方法】
PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误
漫蛙MANWA漫画主页官方入口 漫蛙漫画最新在线阅读地址
Composer的 archive 命令怎么用_快速打包你的PHP项目及其Composer依赖
一加Ace 6T支持全新明眸护眼:通过了最严苛的护眼小金标认证
R星幕后开发视频泄露 包含《GTA6》等多款大作
J*aScript中赋值与自增运算符的复杂交互与执行机制
台积电1.4nm工艺A14瞄准2028:10年来性能提升80%
sublime如何优雅地处理行尾空格_sublime自动清理多余空白字符配置
Go语言中动态执行代码字符串的策略与实践


2025-12-05
浏览次数:次
返回列表
tr;
std::transform(upper_str.begin(), upper_str.end(), upper_str.begin(), ::toupper);
// 转换为小写
std::string lower_str = str;
std::transform(lower_str.begin(), lower_str.end(), lower_str.begin(), ::tolower);
std::cout << "Original: " << str << "\n";
std::cout << "Uppercase: " << upper_str << "\n";
std::cout << "Lowercase: " << lower_str << "\n";
return 0;
}