当前位置: 首页 > news >正文

c++字母大小写转换

可以通过标准库中的 <algorithm><cctype> 头文件来实现大小写转换。以下是常用的方法:


1. 使用 std::transformstd::toupper/std::tolower

1.1 转换为大写

#include <iostream>
#include <string>
#include <algorithm> // std::transform
#include <cctype>    // std::toupperint main() {std::string s = "Hello, World!";// 转换为大写std::transform(s.begin(), s.end(), s.begin(), ::toupper);std::cout << "Uppercase: " << s << std::endl; // HELLO, WORLD!return 0;
}

1.2 转换为小写

#include <iostream>
#include <string>
#include <algorithm> // std::transform
#include <cctype>    // std::tolowerint main() {std::string s = "Hello, World!";// 转换为小写std::transform(s.begin(), s.end(), s.begin(), ::tolower);std::cout << "Lowercase: " << s << std::endl; // hello, world!return 0;
}

2. 手动实现大小写转换

2.1 转换为大写

#include <iostream>
#include <string>
#include <cctype> // std::toupperint main() {std::string s = "Hello, World!";for (char& c : s) {c = std::toupper(c);}std::cout << "Uppercase: " << s << std::endl; // HELLO, WORLD!return 0;
}

2.2 转换为小写

#include <iostream>
#include <string>
#include <cctype> // std::tolowerint main() {std::string s = "Hello, World!";for (char& c : s) {c = std::tolower(c);}std::cout << "Lowercase: " << s << std::endl; // hello, world!return 0;
}

3. 处理非 ASCII 字符(如中文)

std::toupperstd::tolower 只能处理 ASCII 字符。如果需要处理 Unicode 字符(如中文),可以使用第三方库(如 ICU 或 Boost)。


4. 示例:选择性转换

如果只需要转换部分字符,可以通过条件判断实现。

#include <iostream>
#include <string>
#include <cctype> // std::tolower, std::toupperint main() {std::string s = "Hello, World!";// 只转换字母for (char& c : s) {if (std::isalpha(c)) {c = std::tolower(c);}}std::cout << "Selective lowercase: " << s << std::endl; // hello, world!return 0;
}

5. 注意事项

  • std::toupperstd::tolower 的参数和返回值是 int 类型,需要强制转换为 char
  • 如果字符串中包含非 ASCII 字符(如中文),std::toupperstd::tolower 可能无法正确处理。

相关文章:

c++字母大小写转换

可以通过标准库中的 <algorithm> 和 <cctype> 头文件来实现大小写转换。以下是常用的方法&#xff1a; 1. 使用 std::transform 和 std::toupper/std::tolower 1.1 转换为大写 #include <iostream> #include <string> #include <algorithm> //…...

MySQL知识点总结(十六)

请说明在复制拓扑中&#xff0c;中继日志集和从属服务器状态日志的作用。 中继日志用来保存从主服务器接受的二进制日志&#xff0c;与二进制日志相同的格式存储&#xff0c;由服务器自动管理&#xff0c;在其全部内容重放后会自动删除。 从属服务器状态日志存储关于如何连接…...

Windows程序设计10:文件指针及目录的创建与删除

文章目录 前言一、文件指针是什么&#xff1f;二、设置文件指针的位置&#xff1a;随机读写&#xff0c;SetFilePointer函数1.函数说明2.函数实例 三、 目录的创建CreateDirectory四、目录的删除RemoveDirectory总结 前言 Windows程序设计10&#xff1a;文件指针及目录的创建与…...

geolocator包的功能和用法

文章目录 1 概念介绍2 使用方法3 示例代码4 体验分享 我们在上一章回中介绍了如何实现滑动菜单相关的内容&#xff0c;本章回中将介绍如何获取位置信息.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1 概念介绍 我们在这里说的获取位置信息本质上是获取当前手机所在位置的…...

Node.js——body-parser、防盗链、路由模块化、express-generator应用生成器

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…...

22.Word:小张-经费联审核结算单❗【16】

目录 NO1.2 NO3.4​ NO5.6.7 NO8邮件合并 MS搜狗输入法 NO1.2 用ms打开文件&#xff0c;而不是wps❗不然后面都没分布局→页面设置→页面大小→页面方向→上下左右&#xff1a;页边距→页码范围&#xff1a;多页&#xff1a;拼页光标处于→布局→分隔符&#xff1a;分节符…...

Agent 高频知识汇总:查漏补缺参考大全

Agent 高频问题汇总 一、基础概念类 &#xff08;一&#xff09;请解释 Agent 的概念及其主要特点 Agent 是一种能够感知所处环境&#xff0c;并基于感知信息做出决策、采取行动以实现特定目标的实体。它既可以是简单的规则基系统&#xff0c;也能是复杂的智能体&#xff0c…...

本地化部署DeepSeek-R1

本文环境搭建均基于免费工具&#xff0c;感谢开源。 一、下载工具并安装 1. Ollama&#xff1a;最新版本 0.5.7 官网在这里 https://ollama.com/download 但是下载太慢&#xff0c;得换个思路 https://sourceforge.net/projects/ollama.mirror/ 2.Chatbox https://cha…...

验证二叉搜索数(98)

98. 验证二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* …...

StarRocks BE源码编译、CLion高亮跳转方法

阅读SR BE源码时&#xff0c;很多类的引用位置爆红找不到&#xff0c;或无法跳转过去&#xff0c;而自己的Linux机器往往缺乏各种C依赖库&#xff0c;配置安装比较麻烦&#xff0c;因此总体的思路是通过CLion远程连接SR社区已经安装完各种依赖库的Docker容器&#xff0c;进行编…...

数模测评:doubao1.5>deepseek-v3>gpt-o1

本次测试了当前评价最高的三款大模型doubao1.5、gpt-o1、deepseek-v3(r1崩溃)&#xff0c;都是采用无提示词的硬核提问方式&#xff0c;测试视频如下。 gpto1、doubao1.5、deepseek测评 测试方式&#xff1a; 上传美赛六道题目文件 直接提问以下5句话&#xff1a; 这是一道数学…...

晴,初三,年已过

既然直播如此影响情绪&#xff0c;为什么还要直播&#xff1f;因为无聊&#xff1f;明明那么多事情可以打发时间。 真不想懂。 今日初三&#xff0c;昨天晚上小舅家聚&#xff0c;今天大舅家聚&#xff0c;计划明天小姨妈家聚。 今晚喝了点大舅哥哥泡的白葡萄酒&#xff0c;…...

Vue3 v-bind 和 v-model 对比

1. 基本概念 1.1 v-bind 单向数据绑定从父组件向子组件传递数据简写形式为 : 1.2 v-model 双向数据绑定父子组件数据同步本质是 v-bind 和 v-on 的语法糖 2. 基础用法对比 2.1 表单元素绑定 <!-- v-bind 示例 --> <template><input :value"text&quo…...

Smalltalk语言是何物?面向对象鼻祖Simula的诞生?Simula和Smalltalk有什么区别?面向对象设计?

Smalltalk语言是何物? Smalltalk语言的前身可以追溯到Flex系统&#xff0c;这是由Alan Kay最早提出的。在随后的发展中&#xff0c;Smalltalk逐渐演化&#xff0c;并出现了Smalltalk-72和Smalltalk-76等版本。最终&#xff0c;在经过近10年的研究与发展后&#xff0c;Xerox研究…...

KVM/ARM——基于ARM虚拟化扩展的VMM

1. 前言 ARM架构为了支持虚拟化做了些扩展&#xff0c;称为虚拟化扩展(Virtualization Extensions)。原先为VT-x创建的KVM(Linux-based Kernel Virtual Machine)适配了ARM体系结构&#xff0c;引入了KVM/ARM (the Linux ARM hypervisor)。KVM/ARM没有在hypervisor中引入复杂的…...

Windows系统中Docker可视化工具对比分析,Docker Desktop,Portainer,Rancher

Docker可视化工具对比分析&#xff0c;Docker Desktop&#xff0c;Portainer&#xff0c;Rancher Windows系统中Docker可视化工具对比分析1. 工具概览2. Docker Desktop官网链接&#xff1a;主要优点&#xff1a;主要缺点&#xff1a;版本更新频率&#xff1a; 3. Portainer官网…...

【架构面试】二、消息队列和MySQL和Redis

MQ MQ消息中间件 问题引出与MQ作用 常见面试问题&#xff1a;面试官常针对项目中使用MQ技术的候选人提问&#xff0c;如如何确保消息不丢失&#xff0c;该问题可考察候选人技术能力。MQ应用场景及作用&#xff1a;以京东系统下单扣减京豆为例&#xff0c;MQ用于交易服和京豆服…...

算法【完全背包】

完全背包与01背包的区别仅在于每种商品可以选取无限次。时间复杂度O(物品数量 * 背包容量) 下面通过题目加深理解。 题目一 测试链接&#xff1a;疯狂的采药 - 洛谷 分析&#xff1a;这是一道完全背包的模板题。对于第i个物品的可能性展开也有两种&#xff0c;第一种是不取第…...

二叉树的遍历

有一个结点的二叉树。给出每个结点的两个子结点编号&#xff0c;建立一棵二叉树&#xff0c;如果是叶子结点&#xff0c;则输入 0 0。 建好树这棵二叉树之后&#xff0c;依次求出它的前序、中序、后序列遍历。 输入格式: 第一行一个整数n &#xff0c;表示结点数。 之后n 行…...

1.31 实现五个线程的同步

1.使用互斥锁实现 1>程序代码 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <pthread.h> #include &l…...

如何突破教育资源壁垒?智能解析工具让电子课本获取效率提升200%

如何突破教育资源壁垒&#xff1f;智能解析工具让电子课本获取效率提升200% 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具&#xff0c;帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载&#xff0c;让您更方便地获取课本内容。 …...

【ACCELERATED GSTREAMER PERFORMANCE GUIDE】Choosing Between videoconvert and nvvidconv for Optimal Vid

1. 理解videoconvert与nvvidconv的核心差异 第一次接触GStreamer视频处理时&#xff0c;很多人都会困惑到底该用videoconvert还是nvvidconv。这个问题就像选择交通工具&#xff1a;你是要经济实惠的公交车&#xff08;CPU处理&#xff09;&#xff0c;还是要速度更快的出租车&a…...

基于python的民宿预定管理系统设计与实现j470j

目录同行可拿货,招校园代理 ,本人源头供货商功能需求分析用户端功能房东端功能管理员端功能技术实现要点扩展功能建议项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能需求分析 民宿…...

5分钟学会OrgChart:从零开始创建动态组织图

5分钟学会OrgChart&#xff1a;从零开始创建动态组织图 【免费下载链接】OrgChart Its a simple and direct organization chart plugin. Anytime you want a tree-like chart, you can turn to OrgChart. 项目地址: https://gitcode.com/gh_mirrors/or/OrgChart 如果你…...

Linux打印机驱动foo2zjs全攻略:从安装到优化的完整指南

Linux打印机驱动foo2zjs全攻略&#xff1a;从安装到优化的完整指南 【免费下载链接】foo2zjs A linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/ 项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs 价值定位&#xff1a;解决Linux打印…...

MySQL 8.0.34和5.7.43双版本共存安装指南(Windows环境避坑大全)

MySQL 8.0与5.7双版本共存实战&#xff1a;Windows环境全流程避坑指南 1. 版本共存的核心挑战与解决方案 在开发环境中同时运行MySQL 8.0和5.7版本的需求日益普遍——可能是为了兼容旧系统&#xff0c;或是测试应用在不同版本下的表现。但Windows环境下实现双版本共存会遇到几个…...

2026年高压电磁阀销售厂家哪家强?口碑好才是真的香

在工业阀门领域&#xff0c;高压电磁阀是许多高难度、复杂工况下的关键设备。随着技术的不断进步和市场需求的增加&#xff0c;选择一家优质的高压电磁阀销售厂家显得尤为重要。本文将从多个维度对比分析几家主要的高压电磁阀生产厂家&#xff0c;并给出实操建议&#xff0c;帮…...

从ATE到RPE:用evo全面解读你的SLAM算法在KITTI上的表现

从ATE到RPE&#xff1a;用evo全面解读你的SLAM算法在KITTI上的表现 在SLAM算法开发中&#xff0c;量化评估是验证算法性能的关键环节。KITTI数据集作为自动驾驶领域最具影响力的基准测试平台之一&#xff0c;为研究者提供了丰富的真实场景数据。但如何从海量轨迹数据中提取有价…...

3分钟上手弹幕盒子:零基础高效制作自定义弹幕的免费工具

3分钟上手弹幕盒子&#xff1a;零基础高效制作自定义弹幕的免费工具 【免费下载链接】danmubox.github.io 弹幕盒子 项目地址: https://gitcode.com/gh_mirrors/da/danmubox.github.io 弹幕盒子是一款专业的在线自定义弹幕生成工具&#xff0c;以轻量化架构设计为核心&a…...

5分钟部署阿里RexUniNLU:Web界面操作,无需编程基础

5分钟部署阿里RexUniNLU&#xff1a;Web界面操作&#xff0c;无需编程基础 1. 认识RexUniNLU&#xff1a;零样本理解的神器 想象一下&#xff0c;你刚接手一个新项目&#xff0c;老板丢给你一堆用户评论&#xff0c;要求你快速分析出大家对产品"屏幕"、"续航&…...