C++系列-第1章顺序结构-9-字符类型char

在这里插入图片描述

在线练习:
http://noi.openjudge.cn/
https://www.luogu.com.cn/

总结

本文是C++系列博客,主要讲述字符类型char

字符类型char

在C++编程语言中,char是一种基本的数据类型,它用于存储单个字符。字符可以是字母、数字、标点符号或者是转义字符等。char类型通常占用一个字节(byte)的内存空间。

一个字节表示八位二进制数,8位无符号的二进制数可以表示为00000000-11111111,即0-255。
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。
二进制转十进制:要从右到左用二进制的每个数去乘以2的相应次方
二进制的11111111=127+1*26+125+……1*20=128+64+32+16+8+4+2+1=255
所以一个字节表示无符号整数可以表示十进制的0-255共256个数,最大值为255。

在这里插入图片描述
在这里插入图片描述

基础知识

  1. 声明:声明一个char类型的变量,你可以这样做:
    char myChar = 'A';
    
    在这里,myChar是一个char类型的变量,并且它被赋予了字符A
  2. 字符表示:字符值需要用单引号(’ ')包围,比如'a''1''#'
  3. ASCII值:每个char类型的字符都对应一个ASCII码值。例如,字符'A'的ASCII码值是65。

案例:字符转换

下面是一个简单的案例,它演示了如何将小写字母转换为大写字母。这个程序会提示用户输入一个小写字母,然后程序将其转换为大写字母并显示结果。

#include <iostream>
using namespace std;
int main() {char lowercase, uppercase;cout << "请输入一个小写字母: ";cin >> lowercase;// 将小写字母转换为ASCII码值,然后减去32得到大写字母的ASCII码值uppercase = lowercase - 32;cout << "大写字母是: " << uppercase << endl;return 0;
}

输出为:
在这里插入图片描述

练习案例:字符判断

现在,你可以尝试一个练习案例。编写一个程序,让用户输入一个字符,然后判断它是大写字母、小写字母还是数字。
提示:

  • 大写字母的ASCII码范围是65到90。
  • 小写字母的ASCII码范围是97到122。
  • 数字字符的ASCII码范围是48到57。
    你可以在下面的代码框架中填充代码:
#include <iostream>
using namespace std;int main() {char inputChar;cout << "请输入一个字符: ";cin >> inputChar;// 判断输入的字符类型if ((inputChar >= 'A') && (inputChar <= 'Z')) {cout << "你输入的是一个大写字母。" << endl;} else if ((inputChar >= 'a') && (inputChar <= 'z')) {cout << "你输入的是一个小写字母。" << endl;} else if ((inputChar >= '0') && (inputChar <= '9')) {cout << "你输入的是一个数字。" << endl;} else {cout << "你输入的字符不是字母也不是数字。" << endl;}return 0;
}

输出为:
在这里插入图片描述

案例 输出字符的ASCII值

#include <iostream>
using namespace std;int main() {char myChar = 'A'; // 声明一个char类型的变量并初始化为'A'// 打印字符cout << "字符: " << myChar << endl;// 打印字符的ASCII码值cout << "ASCII码值: " << int(myChar) << endl;return 0;
}

输出为:
在这里插入图片描述

案例加密和解密简化版

下面是一个基本的例子,它演示了如何对单个字符进行加密和解密:

#include <iostream>
using namespace std;
int main() {char plainChar;int shift;cout << "请输入一个要加密的字符: ";cin >> plainChar; // 输入一个字符cout << "请输入加密的偏移量 (1-25): ";cin >> shift;// 加密字符char encryptedChar = plainChar + shift;cout << "加密后的字符: " << encryptedChar << endl;// 解密字符char decryptedChar = encryptedChar - shift;cout << "解密后的字符: " << decryptedChar << endl;return 0;
}

输出为:
在这里插入图片描述

在这个程序中,我们首先提示用户输入一个要加密的字符和一个整数偏移量(范围是1-25)。然后,我们通过将字符的ASCII码值加上偏移量来得到加密后的字符,并打印出来。接着,我们通过从加密后的字符的ASCII码值中减去相同的偏移量来得到解密后的字符,并打印出来。
请注意,这个程序只能处理一个字符,并且没有考虑加密过程中可能出现的边界情况,例如字符是大写字母、小写字母还是其他特殊字符。在实际应用中,加密通常会使用更复杂的算法和安全的密钥。

案例 加密和解密函数

下面是一个基于char和ASCII的简单加密案例。这个程序会将用户输入的文本进行加密,然后将加密后的文本输出。加密过程将使用一个简单的算法,例如对每个字符的ASCII码值进行加法操作。

#include <iostream>
#include <string>
using namespace std;
string encrypt(string text, int shift) {string encryptedText = "";for (int i = 0; i < text.length(); i++) {// 对每个字符的ASCII码值进行加法操作char encryptedChar = text[i] + shift;// 将加密后的字符添加到加密文本中encryptedText += encryptedChar;}return encryptedText;
}
string decrypt(string encryptedText, int shift) {string decryptedText = "";for (int i = 0; i < encryptedText.length(); i++) {// 对每个字符的ASCII码值进行减法操作以解密char decryptedChar = encryptedText[i] - shift;// 将解密后的字符添加到解密文本中decryptedText += decryptedChar;}return decryptedText;
}
int main() {string text;int shift;cout << "请输入要加密的文本: ";getline(cin, text); // 使用getline来允许输入空格cout << "请输入加密的偏移量: ";cin >> shift;string encryptedText = encrypt(text, shift);cout << "加密后的文本: " << encryptedText << endl;string decryptedText = decrypt(encryptedText, shift);cout << "解密后的文本: " << decryptedText << endl;return 0;
}

输出为:
在这里插入图片描述

在这个程序中,我们定义了两个函数encryptdecrypt来分别处理加密和解密操作。加密函数通过将每个字符的ASCII码值加上一个偏移量来实现加密,而解密函数则通过从加密后的ASCII码值中减去相同的偏移量来实现解密。
main函数中,我们首先提示用户输入要加密的文本和一个整数偏移量。然后,我们调用encrypt函数来加密文本,并打印出加密后的结果。接着,我们调用decrypt函数来解密文本,并打印出解密后的结果。
请注意,这个加密算法非常简单,并不适合真正的安全加密需求。在实际应用中,加密通常会使用更复杂的算法和安全的密钥。

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

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

相关文章

SG-9101CGA(汽车+125°C可编程晶体振荡器)

SG-9101CGA是用于汽车CMOS输出的可编程晶体振荡器&#xff0c;彩用2.5 x 2.0 (mm)封装&#xff0c;0.67 MHz至170 MHz频率范围、工作温度范围为-40℃~125℃&#xff0c;符合车规级晶振&#xff0c;无铅&#xff0c;绿色环保&#xff0c;满足汽车工业标准&#xff0c;电源电压范…

蓝桥杯真题(Python)每日练Day1

说明&#xff1a;在CSP认证的基础上&#xff08;可以看看本人CSP打卡系列的博客&#xff09;备赛2024蓝桥杯&#xff08;Python&#xff09;&#xff0c;本人专业&#xff1a;大数据与数据科学 因此对python要求熟练掌握&#xff0c;通过练习蓝桥杯既能熟悉语法又能锻炼算法和思…

ai写作软件手机版哪个好用?这些软件了解一下

ai写作软件手机版哪个好用&#xff1f;随着人工智能技术的不断发展&#xff0c;手机版的AI写作软件也日益受到人们的关注。这些软件不仅能够帮助用户快速生成高质量的文本内容&#xff0c;还支持多种语言&#xff0c;满足不同用户的需求。本文将为你介绍几款知名的手机版AI写作…

PyCharm 快捷键(Ctrl + R)正则表达式批量替换

目录 一、使用快捷键CtrlR&#xff0c;打开替换界面 二、输入替换格式 三、点击全部替换 一、使用快捷键CtrlR&#xff0c;打开替换界面 二、输入替换格式 在第一个框输入 (.*): (.*) 第二个框输入 $1:$2, 三、点击全部替换

大模型学习与实践笔记(九)

一、LMDeply方式部署 使用 LMDeploy 以本地对话方式部署 InternLM-Chat-7B 模型&#xff0c;生成 300 字的小故事 2.api 方式部署 运行 结果&#xff1a; 显存占用&#xff1a; 二、报错与解决方案 在使用命令&#xff0c;对lmdeploy 进行源码安装是时&#xff0c;报错 1.源…

一款开源且不限制大小可以设置过期时间的支持分享的的开源文件共享系统picoshare 部署教程

1.拉取镜像 2.部署 创建目录 mkdir -p /opt/picoshare/data 部署 其中:"somesecretpass"是密码 docker run \--env "PORT4001" \--env "PS_SHARED_SECRETsomesecretpass" \--publish 10005:4001/tcp \--volume "/opt/picoshare/data:…

目标检测--01

基本概念 什么是目标检测&#xff1f; ​ 目标检测&#xff08;Object Detection&#xff09;的任务是找出图像中所有感兴趣的目标&#xff08;物体&#xff09;&#xff0c;确定它们的类别和位置&#xff0c;是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状…

深度学习和机器学习中针对非时间序列的回归任务,有哪些改进角度?

深度学习和机器学习中针对非时间序列的回归任务&#xff0c;有哪些改进角度&#xff1f; 目录 深度学习和机器学习中针对非时间序列的回归任务&#xff0c;有哪些改进角度&#xff1f;引言1 数据预处理2 数据集增强3 特征选择4 模型选择5 模型正则化与泛化6 优化器7 学习率8 超…

阿里云ECS(CentOS镜像)安装docker

目录 1.前置条件 2.连接至ECS 3.yum软件包更新 4.安装docker前置所需软件包 5.添加docker 官方的 yum 软件源 6.安装docker 7.检测是否成功 8.配置阿里云镜像加速器 1.前置条件 在看本文前保证未安装过docker,或者安装过但是清理干净 如果多次安装失败过&#xff0c;…

使用 MinIO 和 PostgreSQL 简化数据事件

本教程将教您如何使用 Docker 和 Docker Compose 在 MinIO 和 PostgreSQL 之间设置和管理数据事件&#xff0c;也称为存储桶或对象事件。 您可能已经在利用 MinIO 事件与外部服务进行通信&#xff0c;现在您将通过使用 PostgreSQL 自动化和简化数据事件管理来增强数据处理能力…

基于R语言的NDVI的Sen-MK趋势检验

本实验拟分析艾比湖地区2010年至2020年间的NDVI数据&#xff0c;数据从MODIS遥感影像中提取的NDVI值&#xff0c;在GEE遥感云平台上将影像数据下载下来。代码如下&#xff1a; import ee import geemap geemap.set_proxy(port7890)# 设置全局网络代理 Map geemap.Map()# 指定…

CSV文件中json列的处理2

如上所示&#xff0c;csv文件中包含以中括号{}包含的json字段&#xff0c;可用如下方法提取&#xff1a; import pandas as pd from datetime import date todaystr(date.today()) import jsonfilepath/Users/kangyongqing/Documents/kangyq/202401/调课功能使用统计/ file104…