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

蓝桥杯基础知识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)

相关文章:

  • 什么是安全信息和事件管理(SIEM),有什么用处
  • 「微服务」Saga 模式 如何使用微服务实现业务事务-第二部分
  • C#使用纯OpenCvSharp部署yolov8-pose姿态识别
  • MySQL视图索引执行计划相关十五道面试题分享
  • 1、Excel工作场景和知识点总结
  • Liunx安装FTP和SFTP
  • MySQL数据库进阶-事务
  • 论文阅读记录SuMa SuMa++
  • rust中Atomic Ordering含义总结
  • Docker 镜像以及镜像分层
  • AI绘画Midjourney绘画提示词Prompt大全
  • Nougat:科学文档的OCR 使用记录
  • 12月笔记
  • 软件测试|Linux下Python安装配置指南
  • Parallels虚拟机启动后,Mac主机无法上网怎么办
  • 软件测试|深入解析Docker Run命令:创建和启动容器的完全指南
  • 力扣(leetcode)第482题密钥格式化(Python)
  • 71内网安全-域横向网络传输应用层隧道技术
  • 【LLM】大型语言模型:2023年完整指南
  • 【STM32】STM32学习笔记-ADC单通道 ADC多通道(22)
  • 多少Moreless:向世界展示现代中式家具的生活美学
  • 以军证实空袭也门多个港口
  • 董军同德国国防部长举行会谈
  • 上海制造佳品汇大阪站即将启幕,泡泡玛特领潮出海
  • 张广智︱“编年事辑”:打开学人心路历程的窗户
  • 中日东三省问题的源起——《1905年东三省事宜谈判笔记》解题