C++ string大小写转换_C++ toupper与tolower用法

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

c++ string大小写转换_c++ toupper与tolower用法

在C++中,对字符串进行大小写转换是一个常见的操作。虽然C++标准库没有直接提供像Python那样简洁的upper()lower()方法,但我们可以借助头文件中的toupper()tolower()函数,结合std::transform来高效实现。

1. toupper 与 tolower 函数简介

toupper(int c)tolower(int c) 是定义在头文件中的C风格函数,用于将单个字符转换为大写或小写:

toupper(c):如果c是小写字母(a-z),返回对应的大写字母(A-Z);否则返回原字符。 tolower(c):如果c是大写字母(A-Z),返回对应的小写字母(a-z);否则返回原字符。

注意:这两个函数参数类型是int,通常传入char会自动提升,但处理时应确保字符值在unsigned char范围内,避免未定义行为。

2. 转换整个字符串为大写或小写

要对整个std::string进行大小写转换,最常用的方法是使用std::transform算法:

立即学习“C++免费学习笔记(深入)”;

#include #include #include #include int main() {    std::string str = "Hello World!";    // 转换为大写    std::string upper_str = str;    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;}

输出结果:

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(如中文、带重音符号的字符)。 非字母字符(数字、标点等)不会被改变。 确保包含头文件,否则toupper/tolower可能无法找到。基本上就这些。掌握std::transform配合touppertolower的用法,就能轻松处理大多数C++字符串大小写转换需求。

以上就是C++ string大小写转换_C++ toupper与tolower用法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1487906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
C++如何操作XML文件_使用TinyXML2库解析和生成C++ XML数据
上一篇 2025年12月19日 11:05:46
C++如何使用gtest进行单元测试_C++单元测试框架与gtest使用指南
下一篇 2025年12月19日 11:05:54

相关推荐

  • 爆款和平替之后,华为极简全闪数据中心还要Pro+

    过去一年,全闪存市场出现了几款爆品,例如oceanstordorado 2000、oceanstordorado 2100、oceanprotectx3000、fusioncube1000v。部分爆品甚至越界平替了hdd(机械硬盘)产品。合作伙伴也受益其中,上海华讯、广州耀恒等公司的相关业绩,都增长…

    2026年8月30日
    100
  • 如何解决PHP中的文本编码问题?使用yethee/tiktoken库可以!

    可以通过以下地址学习Composer:学习地址 在处理文本编码时,尤其是与ai模型相关的应用中,常常会遇到各种编码问题。这些问题不仅会影响文本的正确性,还会降低程序的运行效率。最近,我在开发一个与openai模型集成的项目时,遇到了类似的问题。幸运的是,通过使用yethee/tiktoken库,我成…

    用户投稿 2026年8月30日
    000
  • 常用的mac命令大全

    常用的mac命令大全常用的mac命令大全常用的mac命令大全常用的mac命令大全

    掌握Mac终端命令能显著提升效率,核心在于理解与实践。从基础的文件导航(pwd、ls、cd)、文件操作(mkdir、touch、cp、mv、rm)到系统管理(top、df、du)、网络诊断(ping、ifconfig),逐步深入。善用man手册查阅命令详情,通过别名(如alias ll=&#8217…

    2026年8月30日 用户投稿
    100
  • 电脑没网怎么截图 多种离线截图方法

    电脑没网怎么截图 多种离线截图方法电脑没网怎么截图 多种离线截图方法电脑没网怎么截图 多种离线截图方法电脑没网怎么截图 多种离线截图方法

    在使用电脑时,我们经常需要通过截图来保留界面内容、记录问题或分享信息。当网络中断时,许多依赖在线服务的截图工具可能无法使用,令人感到不便。但实际上,即便在无网络环境下,依然有多种方式可以顺利完成截图操作。以下是几种实用的离线截图方法。 一、利用键盘快捷键进行截图 即使没有网络连接,Windows系统…

    2026年8月30日 用户投稿
    100
  • AI视频软件本地部署 | 快速上手AI视频生成指南

    首先完成环境配置并安装Python与FFmpeg,接着获取Moonshot AI和Pexels的API密钥,下载MoneyPrinterPlus工具包并部署ChatTTS语音模型,最后通过输入“科技产品介绍”等主题进行端到端测试,验证脚本生成、素材匹配、语音合成与视频合成全流程是否正常。 ☞☞☞AI…

    2026年8月30日
    000
  • Arm KleidiCV 实现与 OpenCV 集成,加速移动端计算机视觉工作负载

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 生成式和多模态人工智能(AI)的兴起,对计算机视觉(CV)技术的需求日益增长。CV技术能够解析和分析来自现实世界的图像信息,广泛应用于人脸识别、图像分类、图像滤镜和增强现实等领域。然而,在内存、…

    2026年8月30日
    000
  • Dubbo消费者配置中id属性究竟有什么作用?

    深入理解Dubbo消费者配置中的id属性 在使用Dubbo框架进行服务消费时,标签中的id属性常常令人困惑。本文将详细解释中id=”timeservice”的用途。 这段配置用于声明一个Dubbo服务消费者,它将消费名为cn.suiwei.service.timeservice的远程服务。id=”t…

    2026年8月30日
    000
  • 抖音精选账号如何运营_抖音精选持续产出优质内容策略

    抖音精选账号如何运营_抖音精选持续产出优质内容策略抖音精选账号如何运营_抖音精选持续产出优质内容策略抖音精选账号如何运营_抖音精选持续产出优质内容策略抖音精选账号如何运营_抖音精选持续产出优质内容策略

    明确账号定位、构建生产流程、善用AI工具、搭建运营矩阵,通过垂直领域聚焦、标准化内容产出、技术提效与多账号协同,系统提升抖音账号质量与流量增长。 如果您希望在抖音平台上打造一个精选账号并持续产出优质内容,但面临流量增长缓慢或内容同质化的问题,很可能是由于账号定位模糊或内容策略缺乏系统性。以下是提升账…

    2026年8月29日 用户投稿
    000
  • MySQL锁升级机制是什么_如何影响并发性能?

    MySQL锁升级机制是什么_如何影响并发性能?MySQL锁升级机制是什么_如何影响并发性能?MySQL锁升级机制是什么_如何影响并发性能?MySQL锁升级机制是什么_如何影响并发性能?

    mysql的“innodb存储引擎并没有自动锁升级机制。①缺少或不当索引会导致全表扫描,进而锁定大量行或页;②显式使用lock tables直接加表锁;③ddl操作如alter table需表级锁保证结构一致性;④大事务或长事务长时间持有大量行锁影响并发;⑤优化器基于成本选择全表扫描而非索引查找。这…

    2026年8月29日 用户投稿
    100
  • win11怎么关闭内存完整性功能_Win11内存完整性关闭操作步骤

    关闭内存完整性可解决Win11性能问题,首先通过安全中心核心隔离设置关闭并重启;若无效,用管理员命令提示符执行bcdedit /set hypervisorlaunchtype off关闭VBS后重启;若开关灰色,则需删除注册表HypervisorEnforcedCodeIntegrity下enab…

    2026年8月29日
    000
  • 手机淘宝的装修技巧是什么?有哪些你知道吗?

    优化手机淘宝店铺需从头像名称、店招设计、首页托管、视觉风格及导航布局入手。1、使用透明背景PNG格式头像,名称控制在10字内并嵌入关键词;2、店招采用5秒内动态内容,突出LOGO与广告语,定期更新;3、通过千牛后台开启智能托管,按经营特性选择模块避免冗余;4、统一主色调不超过三种,商品图以大图展示,…

    2026年8月29日
    100
  • Soul怎么查看谁来过我的主页_Soul访客记录查看路径

    1、打开Soul应用进入个人主页,点击“看过我”可查看近期访问者头像与昵称;2、通过隐私设置中的“屏蔽来访记录的人”可查看隐藏访问痕迹的用户名单;3、部分访客信息需开通会员或完成任务解锁,权限生效后即可显示完整访客列表。 如果您想了解哪些用户浏览过您的Soul主页,可以通过应用内的访客记录功能进行查…

    2026年8月29日
    000
  • 拼多多双11活动打几折?拼多多双11活动打几折优惠

    2025年拼多多双11优惠力度大,通过百亿补贴叠加消费券可低至2.5折,限时秒杀提供5折爆款,跨店满减如满300减50再降10%-20%,砍价免费拿和万人团可实现0元或超低价购。 如果您在寻找2025年拼多多双11期间的折扣力度,可能会发现实际到手价远低于商品原价,这得益于平台多重补贴叠加。以下是获…

    2026年8月29日
    000
  • win10怎么打开远程桌面_win10开启远程桌面连接的教程

    如果您希望从另一台设备访问您的 Windows 10 电脑,可能需要启用远程桌面功能。以下是开启和使用该功能的具体步骤: 本文运行环境:Dell XPS 13,Windows 10。 一、检查系统版本并启用远程桌面 Windows 10 的远程桌面功能仅在专业版、企业版和教育版中可用,家庭版不支持。…

    2026年8月29日
    100
  • Linux文件系统fsck命令详解

    fsck是Linux中检查修复文件系统的工具,用于系统异常断电、磁盘错误等导致文件系统损坏时,通过卸载分区后使用如-a、-y、-n等参数进行自动或只读检查修复,可结合tune2fs设置周期检测,操作前需备份数据并确保设备未挂载以避免风险。 fsck(File System Consistency C…

    2026年8月29日
    000
  • 数智共振!三七互娱与华为构筑文娱产业新生态

    当人工智能、5g与云计算等数字技术以前所未有的方式重构文娱产业格局,沉浸式体验、个性化推荐以及全球化分发逐渐成为新常态,数字基建已成为推动文娱产业升级、连接全球用户的关键动力。 在数智文娱创新领域,总部设于广州的全球知名文娱企业三七互娱,依托“文化+科技”双轮驱动战略,在智慧办公空间建设、全球文化I…

    2026年8月29日
    000
  • 铁路12306怎么查历史订单记录_铁路12306历史订单查询方法

    首先通过12306官方APP或官网查询历史订单,进入“历史订单”页面并设置日期范围、乘车人等条件进行检索;其次可利用APP内“足迹”功能快速查看近期行程记录。 如果您需要查找过去在铁路12306平台上的购票记录,但发现常规订单页面无法显示较早的信息,可能是由于系统默认仅保留近期订单。以下是多种查询历…

    2026年8月29日
    100
  • 京东plus会员白条怎么取消?京东plus会员白条代扣了?如何取消

    首先关闭京东APP中的PLUS会员自动续费,进入“我的”-PLUS会员-设置-管理自动续费,关闭并验证;再通过京东金融APP解绑白条代扣,路径为“我的”-支付设置-免密支付/自动扣款,找到PLUS会员项目解约;若操作失败,可联系京东客服人工取消,提供手机号、订单号等信息完成解约。 如果您在使用京东P…

    2026年8月29日
    100
  • 手机淘宝商品怎么降价?手机淘宝商品怎么降价这么快

    商品快速降价因平台动态定价与促销,可利用官方立减、预售定金膨胀、领取大额红包、叠加跨店满减及品类补贴、关注返场与价保政策应对。 如果您发现手机淘宝上的商品价格快速变动,这通常是由于平台和商家采用了多种动态定价策略和促销活动。以下是帮助您理解并应对商品快速降价的详细步骤: 本文运行环境:iPhone …

    2026年8月29日
    000
  • Laravel 中的数据加密和解密

    本指南介绍了如何在 Laravel 模型中实现敏感数据的加密和解密。通过执行以下步骤,您可以在将数据存储到数据库之前保护数据并在检索数据时对其进行解密。  先决条件 Laravel:确保您使用的是 Laravel 项目。加密密钥:Laravel 在 .env 文件中自动生成 APP_KEY。该密钥由…

    2026年8月29日
    200

发表回复

登录后才能评论
关注微信