当前位置: 首页 > 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…...

鸿蒙页面代码构建:基于 HarmonyOS 6.0 的跨端开发实战

鸿蒙页面代码构建&#xff1a;基于 HarmonyOS 6.0 的跨端开发实战 前言 随着移动互联网和物联网的深度融合&#xff0c;应用开发正在从单一平台走向跨端、多终端协作的时代。华为鸿蒙操作系统&#xff08;HarmonyOS&#xff09;自诞生以来&#xff0c;一直致力于为开发者提供统…...

Whisky停止维护后,如何在M系列Mac上继续运行Windows应用?5种技术实现路径深度解析

Whisky停止维护后&#xff0c;如何在M系列Mac上继续运行Windows应用&#xff1f;5种技术实现路径深度解析 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 当看到Whisky项目官方宣布&…...

用STM8S驱动BLDC电机:从FD6288驱动芯片选型到PCB布局的完整实战指南

用STM8S驱动BLDC电机&#xff1a;从FD6288驱动芯片选型到PCB布局的完整实战指南 在工业自动化、消费电子和机器人领域&#xff0c;无刷直流电机&#xff08;BLDC&#xff09;凭借高效率、长寿命和低噪音等优势&#xff0c;正逐步取代传统有刷电机。但对于硬件工程师而言&#x…...

构建高可用代理池:开源工具agentpull的架构解析与实战部署

1. 项目概述&#xff1a;一个轻量级、可编程的代理拉取工具最近在折腾一些自动化任务和分布式爬虫时&#xff0c;经常遇到一个头疼的问题&#xff1a;如何高效、稳定地管理海量的代理IP资源。无论是数据采集、社交媒体运营还是安全测试&#xff0c;一个可靠的代理池都是基础设施…...

如何快速优化EVE Online舰船配置:免费专业工具指南

如何快速优化EVE Online舰船配置&#xff1a;免费专业工具指南 【免费下载链接】Pyfa Python fitting assistant, cross-platform fitting tool for EVE Online 项目地址: https://gitcode.com/gh_mirrors/py/Pyfa Pyfa&#xff08;Python Fitting Assistant&#xff09…...

希伯来文语音上线倒计时72小时!ElevenLabs生产环境紧急修复清单:DNS预热、SSL证书SNI兼容、以及3个必须禁用的默认voice preset

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;希伯来文语音上线倒计时72小时&#xff1a;全局技术态势与交付承诺 希伯来文语音合成&#xff08;Hebrew TTS&#xff09;系统已进入最终验证阶段&#xff0c;核心引擎完成全链路压力测试&#xff0c;平…...

Windows平台终极ADB驱动环境一键配置指南:告别繁琐,专注开发

Windows平台终极ADB驱动环境一键配置指南&#xff1a;告别繁琐&#xff0c;专注开发 【免费下载链接】Latest-adb-fastboot-installer-for-windows A Simple Android Driver installer tool for windows (Always installs the latest version) 项目地址: https://gitcode.com…...

告别3389端口暴露:零信任防火墙重塑RDP安全访问新范式

1. 传统RDP安全方案的致命短板 每次看到服务器日志里那些密密麻麻的暴力破解尝试记录&#xff0c;我的后颈都会发凉。作为从业十年的运维老兵&#xff0c;我见过太多因为3389端口暴露引发的安全事故。有个客户的数据库服务器&#xff0c;明明设置了16位复杂密码&#xff0c;还是…...

零依赖STL转STEP工具:5分钟实现3D格式无缝转换的完整指南

零依赖STL转STEP工具&#xff1a;5分钟实现3D格式无缝转换的完整指南 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 在数字化制造和工程设计的交叉领域&#xff0c;STL到STEP格式转换已成为连…...

FontForge入门指南:从零开始设计你的第一套字体

FontForge入门指南&#xff1a;从零开始设计你的第一套字体 【免费下载链接】fontforge Free (libre) font editor for Windows, Mac OS X and GNULinux 项目地址: https://gitcode.com/gh_mirrors/fo/fontforge 你是否曾想过亲手设计一套属于自己的字体&#xff1f;Fon…...