新闻中心
C++如何将字符串转换为小写或大写?(代码示例)
推荐使用for循环配合std::tolower(需先转unsigned char)转换字符串为小写,安全清晰兼容性好。

在C++中,将字符串转换为小写或大写最常用的方法是遍历每个字符,调用 std::tolower 或 std::toupper(需包含 <cctype></cctype>),并配合 std::string 的索引操作或迭代器。注意:这些函数作用于单个 unsigned char 值,直接传入 char 可能在负值时导致未定义行为,因此需先转换为 unsigned char。
转换为小写(使用
for 循环 + tolower)
安全、清晰、兼容性好,推荐日常使用:
#include <iostream>
#include <string>
#include <cctype> // tolower, toupper
std::string toLower(const std::string& s) {
std::string result = s;
for (size_t i = 0; i < result.length(); ++i) {
result[i] = static_cast<char>(std::tolower(static_cast<unsigned char>(result[i])));
}
return result;
}
// 使用示例
int main() {
std::string s = "Hello World! 123";
std::cout << toLower(s) << "\n"; // 输出: hello world! 123
}
转换为大写(使用范围 for + toupper)
更现代简洁的写法,同样注意 unsigned char 转换:
Songtell
Songtell是第一个人工智能生成的歌曲含义库
164
查看详情
std::string toUpper(std::string s) { // 传值避免修改原串
for (char& c : s) {
c = static_cast<char>(std::toupper(static_cast<unsigned char>(c)));
}
return s;
}
就地转换(不创建新字符串)
如果允许修改原字符串,可省去拷贝,提升效率:
- 直接对原
std::string对象调用非 const 迭代器或下标 - 例如:
for (char& c : myStr) c = std::toupper(...) - 适用于临时处理、性能敏感场景
注意事项与常见坑
-
std::tolower/toupper依赖当前 C locale,默认只对 ASCII 字母有效;中文、Unicode 字符需用 ICU 或 std::locale(C++11+)等高级方案 - 不要写
std::tolower(c)(其中 c 是char),必须先转unsigned char,否则 char 为负时行为未定义 - 这些函数不改变非字母字符(数字、空格、标点),原样保留
- STL 没有内置的
std::string::to_lower()成员函数,切勿误用
以上就是C++如何将字符串转换为小写或大写?(代码示例)的详细内容,更多请关注其它相关文章!
# 遍历
# 云抖音推广官方网站入口
# 网站会员推广
# 太仓广告公司网站建设
# 店铺推广网站哪个好做一点
# 进一步优化网站建设工作
# 滨州网站建设的必要性
# 北京seo运营培训机构
# 屈臣氏营销推广
# 神木360推广网站在哪
# 密云区正规网站建设比较
# 适用于
# 推荐使用
# ai
# 第一个
# 迭代
# 边缘
# 性好
# 如何将
# 游戏开发
# 转换为
# 标准库
# stream
# ios
# c++
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】
铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧
PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误
使用J*aScript检测输入元素是否包含在特定类中
Win11 USB传输速度慢怎么解决 Win11 USB驱动更新与设置
大象笔记网页版入口 印象笔记网页版登录入口
Lar*el 递归关系中排除指定分支的教程
AO3最新官网入口公告_2025AO3镜像站实时查询方法
Android Studio计算器C键逻辑错误排查与修复:条件判断优化指南
Go语言中高效处理x-www-form-urlencoded表单数据
QQ邮箱稳定登录入口_QQ邮箱官方网站网页版使用
qq游戏手机版下载安装_qq游戏移动端入口
Python异步编程实践:使用Binance API构建实时交易数据流
押井守高度称赞《辐射4》:玩了八年都停不下来!
抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站
Odoo 16:在表单视图中基于当前记录动态修改Tree视图属性
J*aScript 字符串标签转换:使用正则表达式高效替换
铁路12306的积分有效期是多久_铁路12306积分有效期说明
qq邮箱日历功能怎么用_创建日程与会议邀请的技巧
CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题
厨房不锈钢水槽发黑生锈怎么处理_水槽用可乐+锡纸2分钟抛亮如新
钉钉视频会议声音异常如何处理 钉钉会议音频修复技巧
sublime如何只显示或隐藏特定类型文件_sublime侧边栏文件过滤
Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】
高德地图怎么看全景照片_高德地图全景照片浏览教程
Lar*el如何生成PDF或Excel文件_Lar*el文档导出工具与使用教程
京东单号查询入口_京东快递订单追踪入口
正确连接J*aScript到HTML实现可点击图片与自定义事件处理
b站赚钱渠道_b站收益来源
C++如何生成随机数_C++ random库使用方法与范围设置
steam官方网页快速访问 steam账号注册全流程
Golang如何使用new_Go new分配内存机制讲解
NVIDIA股价11月重挫12%:下月有望好转 但难回5万亿美元巅峰
fishbowl官网免费版 fishbowl养鱼网站入口
学习通网页版快速入口 学习通官网网页版直接打开
PowerPoint如何制作滚动字幕结尾彩蛋_PowerPoint路径动画实现平滑滚动字幕效果
Pygame教程:解决用户输入与游戏状态更新不同步问题
b站怎么删除评论_b站评论管理与删除操作
PrimeNG Sidebar背景色自定义指南:CSS覆盖与主题化实践
单12V-2×6实现为RTX 5090供电750W!甚至都没敢跑分
必由学官网首页入口 必由学教师网页版登录指南
微博网页版怎么开启两步验证_微博网页版账号安全两步验证设置方法
J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明
拼多多赚钱渠道_拼多多收益来源
MAC怎么在地图App里使用“四处看看”_MAC体验部分城市的3D实景街景
C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用
qq游戏免费畅玩入口_qq游戏电脑版快速启动
漫蛙2正版漫画站 漫蛙2网页版快速访问入口
Pandas DataFrame 多条件优先级排序与排名
顺丰国际快递查询 国际件官方查询入口


2025-12-12
浏览次数:次
返回列表
for 循环 + tolower)