蓝桥杯基础知识1 字母大小写转换

蓝桥杯基础知识1 字母大小写转换

isalpha()判断一个字符是否为字母。
isalnum()判断一个字符是否为十进制数字字符或者字母,是否属于a~ z或A~ Z或0~9。
isdigit() 判断一个字符是否是十进制数字字符。十进制数字是:0 1 2 3 4 5 6 7 8 9

isalnum()和isdigit()中传递的数字如果不为0~9,则编译报错。

islower()判断一个字符是否为小写字母,是否属于a~z。
isupper()判断一个字符是否为大写字母,是否属于A~Z。

#include <iostream>//输入输出
#include <ctype.h>//isalpha、isalnum、isdigit、islower、isupper
using namespace std;int main() {cout << isalnum('a') << ' '<< isalnum('A') << ' '<< isalnum('1') << endl;cout << isalpha('b') << ' '<< isalpha('B') << ' '<< isalpha('2') <<endl;cout << isdigit('c') << ' '<< isdigit('#') << ' '<< isdigit('3') <<' '<< endl;cout << islower('d') << ' '<< islower('D') <<' '<< islower('4') << endl;cout << isupper('e') << ' '<< isupper('E') <<' '<< isupper('5') << endl;return 0;
}



C++ 在线工具 | 菜鸟工具 (runoob.com)

 

//C++风格解法1,编写字母大小写转换函数
//使用库函数进行大小写转换,数字和特殊字符不变
#include<bits/stdc++.h>
using namespace std;char convertedCh(char ch){if(islower(ch))ch = toupper(ch);else if(isupper(ch))ch = tolower(ch);    //改成else,数字和特殊字符也不变return ch;
}
int main(){string s;getline(cin,s);for(auto &i : s)i = convertedCh(i);cout << s << '\n';return 0;
}

tolower()把字母转换成小写字母,非字母字符不做出处理 。

toupper()把字母转换成大写字母,非字母字符不做出处理 。

for(auto i:v)遍历容器元素

for(auto x: range) 拷贝一份 range 元素,只会改变拷贝的元素,不会改变range中 的元素。

拷贝发生在编译期间,不会对运行速率造成很大影响。

for(auto& x: range)非常量左值引用,改变range中的元素。

当需要对原数据进行同步修改时,就需要添加&,即range的引用。

会在改变x的同时修改range。

for(const auto&x:range)常量左值引用,只读取,不拷贝也不改变range中的元素。

const (常类型),不能作为左值,& (引用),不拷贝,不申请新空间,修改range
不拷贝range(拷贝需要申请新的空间),同时不改变range

读取range,不拷贝不改变,一般用在只读操作。

//C风格解法2,利用ASCII编码规则进行大小写转换,数字特殊字符不变
#include<bits/stdc++.h>
using namespace std;char convertedCh(char ch){if('a' <= ch && ch <='z')ch = ch - 'a' + 'A';else if('A' <= ch && ch <= 'Z')ch = ch - 'A' + 'a';    //改成else,数字特殊字符也不变return ch;
}
int main(){string s;getline(cin,s);for(auto &i : s)i = convertedCh(i);cout << s << '\n';return 0;
}

getline(cin,s)就是读取一行,允许读取包含空格的字符串,s必须为字符串类型,即 string s。

cin.getline(s,100)允许读取包含空格的字符串,直到它读取至最大指定的字符数,或直到直到遇到换行符(Enter键),s必须为字符数组类型,即 char s[100]。
 

gets(s)允许读取包含空格的字符串,s必须为字符数组类型,即 char s[100];

gets() 用于从标准输入(通常是键盘)读取一个字符串,直到遇到换行符(Enter键),最终将读取到的字符串存储到指定的字符数组中,并在字符串的末尾添加'\0'

reference:

【C++常用函数】isalpha、isalnum、isdigit、islower、isupper用法_c++字符函数isalpha-CSDN博客C 库函数 – isdigit() | 菜鸟教程 (runoob.com)

C++ tolower函数 与 toupper函数_c++tolower函数-CSDN博客

for(auto i : v)遍历容器元素_for auto 遍历-CSDN博客

auto、auto&、auto&&、const auto和const auto&的区别(常量和非常量的左右值引用)_auto &&和auto&的区别-CSDN博客

getline(cin,s)-CSDN博客

C++ getline函数用法详解 (biancheng.net)

C++ getline():从文件中读取一行字符串 (biancheng.net)

C++ cin.getline用法详解 (biancheng.net)

C语言gets():输入一个字符串 (biancheng.net)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/602936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python】合并具有相同数字前缀的 CSV 文件

一、问题 有一个文件目录&#xff0c;目录下有类似下列文件名&#xff1a;1_a.csv、1_b.csv、1_c.csv、2_a.csv、2_b.csv、2_c.csv......即下划线前面数字相同的不同csv文件有几个&#xff0c;他们的行数相同&#xff0c;列名不同。 想把这个目录下&#xff0c;数字相同的几个…

YOLOv5改进 | 损失篇 | VarifocalLoss密集检测专用损失函数 (VFLoss,论文一比一复现)

一、本文介绍 本文给大家带来的是损失函数改进VFLoss损失函数,VFL是一种为密集目标检测器训练预测IoU-aware Classification Scores(IACS)的损失函数,我经过官方的版本将其集成在我们的YOLOv8的损失函数使用上,其中有很多使用的小细节(否则按照官方的版本使用根本拟合不了…

讨好自己的五大法宝,让生活更精彩

在这个繁忙的世界里&#xff0c;让生活更精彩并不难&#xff0c;关键是你愿不愿意给自己一点小惊喜。让我们一起探讨一下&#xff0c;如何用五大小法宝&#xff0c;讨好自己&#xff0c;让生活更加美好。 1. 每周安排“自己时间” 在繁忙的工作和学习之余&#xff0c;留出每周…

echart图表

首先我们要知道ECharts是什么,它是怎么用的&#xff1f; ECharts是一个使用JavaScript实现的开源可视化库&#xff0c;它涵盖各行业图表&#xff0c;满足各种需求。它提供了丰富的图表类型和交互能力&#xff0c;使用户能够通过国简单的配置生成各种各样的图表&#xff0c;包括…

使用opencv做双目测距(相机标定+立体匹配+测距)

最近在做双目测距&#xff0c;觉得有必要记录点东西&#xff0c;所以我的第一篇博客就这么诞生啦~ 双目测距属于立体视觉这一块&#xff0c;我觉得应该有很多人踩过这个坑了&#xff0c;但网上的资料依旧是云里雾里的&#xff0c;要么是理论讲一大堆&#xff0c;最后发现还不知…

钡铼分布式IO在玻璃制造中的实时数据采集与监控应用介绍

导读 玻璃行业多年来一直广泛使用 PLC 来帮助管理生产过程所需的精确材料比例&#xff0c;完全依赖其PLC进行数据采集与控制&#xff0c;并且大量依靠人工来操作&#xff0c;所以这些高成本推动了对成本较低的替代方案的需求。 场景描述 某玻璃厂生产的玻璃生产包括配料段、熔…

Debezium发布历史49

原文地址&#xff1a; https://debezium.io/blog/2019/02/19/reliable-microservices-data-exchange-with-the-outbox-pattern/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. 使用发件箱模式进行可靠的微服务数…

开源框架 MIT 是什么是否可以商用

MIT开源协议是一种宽松的开源许可证&#xff0c;允许软件在保留版权和许可证声明的前提下&#xff0c;免费使用、复制、修改、合并、出版、分发、再授权和销售等。该许可证适用于几乎所有类型的软件&#xff0c;包括商业软件和专有软件。MIT许可证的底层原理是&#xff0c;通过…

React(2): 使用 html2canvas 生成图片

使用 html2canvas 生成图片 需求 将所需的内容生成图片div 中包括 svg 等 前置准备 "react": "^18.2.0","react-dom": "^18.2.0","html2canvas": "^1.4.1",实现 <div ref{payRef}></div>const pa…

servlet+jdbc+jsp实现登录界面的验证(基于MVC思想)

一、MVC的概念 MVC是模型(Model)和视图(View)以及控制器(Controller)的简写&#xff0c;是一种将数据、界面显示和业务 逻辑进行分离的组织方式&#xff0c;这样在改进界面及用户交互时&#xff0c;不需要重新编写业务逻辑&#xff0c;从而提高了 代码的可维护性。 M&#xf…

如何在Linux上安装使用达芬奇DaVinci-Resolve视频剪辑|附带格式转换脚本

如何在openSUSE-Linux上安装DaVinci-Resolve 您是否还在等待Adobe套件在Linux上的到来&#xff1f;您是否曾多次尝试通过Wine使用Premiere&#xff1f;您是否还在想苹果为什么不以Linux本机版本发布Final Cut Pro&#xff1f; 如果您对所有这些问题中的一个或全部回答是&…

K8S学习指南(65)-Operator介绍

文章目录 引言什么是 Operator&#xff1f;Operator 的优势1. 自动化操作2. 定制资源3. 增强运维功能4. 增强 K8S 原生 API Operator 的优缺点优点&#xff1a;1. 自动化运维2. 定制资源3. 跨平台性4. 增强 K8S API缺点&#xff1a;1. 学习成本2. 复杂性3. 需要专业知识 Operat…

C 字符串替换方法

/* 功能&#xff1a;将str字符串中的oldstr字符串替换为newstr字符串 * 参数&#xff1a;str&#xff1a;操作目标 oldstr&#xff1a;被替换者 newstr&#xff1a;替换者 * 返回值&#xff1a;返回替换之后的字符串 * */ std::string BaseUtil::strrpc(char *str,char *oldst…

浅析观察者模式在Java中的应用

观察者模式&#xff08;Observer Design Pattern&#xff09;,也叫做发布订阅模式&#xff08;Publish-Subscribe Design Pattern&#xff09;、模型-视图&#xff08;Model-View&#xff09;模式、源-监听器&#xff08;Source-Listener&#xff09;模式、从属者&#xff08;D…

AI绘画Midjourney绘画提示词Prompt大全

一、Midjourney绘画工具 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭…

高版本ant-design动态引用icon

需求 最近在更新自己的博客系统&#xff0c;从 vue2 升到 vue3&#xff0c;同步的也把 ant-design 从 1.7.8 跨越多个大版本升级到了 4.0.8&#xff0c;发现菜单上的 icon 报错了。 查询官方文档发现自从 2.0 版本以后的 icon 就不再支持通过 <a-icon /> 组件动态 type…

uniapp 文字超出多少字,显示收起全文按钮效果demo(整理)

收起展开 <template><view class"font30 color000 mL30 mR30"><text :class"showFullText ? : clamp-text">{{ text }}</text><view v-if"showToggleBtn && text.length > 42" click"toggleShowFu…

Python:类型标注解决循环引用问题most likely due to a circular import

两个模块&#xff0c;我们需要做类型标注&#xff0c;于是出现了循环引用的问题 # models.py from controllers import BookControllerclass Book:def get_controller(self) -> BookController:return BookController(self)# controllers.py from models import Bookclass …

基于多目标粒子群算法的支配解求解,基于多目标粒子群的帕累托前沿求解,基于mopso的多目标求解,基于mopso+bp的多目标求解资源

目录 摘要 测试函数shubert 粒子群算法的原理 粒子群算法的主要参数 粒子群算法原理 基于多目标粒子群算法的支配解求解,基于多目标粒子群的帕累托前沿求解,基于mopso的多目标求解,基于mopso+bp的多目标求解资源 代码 结果分析 展望 代码下载:基于多目标粒子群算法的支配解…

Github 2024-01-07 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-01-07统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目4Jupyter Notebook项目2Go项目2C#项目1Starlark项目1非开发语言项目1Java项目1 跨平台应用程序UI框…