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函数来解密文本,并打印出解密后的结果。
请注意,这个加密算法非常简单,并不适合真正的安全加密需求。在实际应用中,加密通常会使用更复杂的算法和安全的密钥。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人工智能AI绘画Midjourney绘画提示词Prompt大全【宝藏级收藏】

一、AI绘画工具 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支…

【EI会议征稿通知】第七届先进电子材料、计算机与软件工程国际学术会议(AEMCSE 2024)

第七届先进电子材料、计算机与软件工程国际学术会议(AEMCSE 2024&#xff09; 2024 7th International Conference on Advanced Electronic Materials, Computers and Software Engineering 第七届先进电子材料、计算机与软件工程国际学术会议(AEMCSE 2024)将于2024年5月10-1…

dp专题16 完全平方数

本题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目&#xff1a; 思路&#xff1a; 这道题与 前面写的零钱兑换一样的思路&#xff0c;只不过&#xff0c;这里需要我们自己添加物品。 代码详解如下&#xff1a; class Solut…

2024年甘肃省职业院校技能大赛信息安全管理与评估 样题三 模块一

竞赛需要完成三个阶段的任务&#xff0c;分别完成三个模块&#xff0c;总分共计 1000分。三个模块内容和分值分别是&#xff1a; 1.第一阶段&#xff1a;模块一 网络平台搭建与设备安全防护&#xff08;180 分钟&#xff0c;300 分&#xff09;。 2.第二阶段&#xff1a;模块二…

「JavaSE」类和对象3

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;快来卷Java啦 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 类和对象3 &#x1f349;多态&#x1f34c;重写&#x1f34c;向上转型&向下转型&#x1f34c;静态绑定&动态绑定&#x…

[Python] scikit-learn之mean_squared_error函数(Mean Squared Error(MSE))介绍和使用案例

什么是均方误差(MSE)和均方根误差(RMSE)? MSE 是均方误差(Mean Squared Error)的缩写&#xff0c;是一种常用的衡量回归模型预测精度的指标。它表示预测值与真实值之间差异的平方和的平均值&#xff0c;通常用于评估回归模型的性能。 RMSE 是均方根误差(Root Mean Squared Er…

Labview实现用户界面切换的几种方式---通过VI间相互调用

在做用户界面时我们的程序往往面对的对象是程序使用者&#xff0c;复杂程序如果放在同一个页面中&#xff0c;往往会导致程序冗长卡顿&#xff0c;此时通过多个VI之间的切换就可以实现多个界面之间的转换&#xff0c;也会显得程序更加的高大上。 本文所有程序均可下载&#xff…

图灵日记之java奇妙历险记--String类

目录 String常用方法字符串构造String对象的比较字符串查找char charAt(int index)int indexOf(int ch)int indexOf(int ch, int fromIndex)int indexOf(String str)int indexOf(String str, int fromIndex)int lastIndexOf(String str)int lastIndexOf(String str, int fromIn…

解密OceanBase数据库引擎:探秘数据的深海奥秘

目录 1、引言 1.1 数据库引擎的重要性 1.2 OceanBase数据库引擎的背景和意义 2、OceanBase数据库引擎的基本概述 2.1 数据库引擎的定义和功能 2.2 OceanBase数据库引擎的特点和优势 3、OceanBase数据库引擎的架构和设计 3.1 分布式架构的概念和原理 3.2 OceanBase数据…

Unity之射线检测

不知道大家有没有玩过红色警戒 —— 一款即时战略游戏&#xff0c;和罪恶都市一样小编小学的时候就开始玩了&#xff0c;这款游戏控制单位角色移动是通过鼠标的点击来实现。 同样的操作方法还有英雄联盟等很多游戏&#xff0c;那本篇文章小编就通过简单小实例来讲解这种操作在U…

【新书推荐】Web3.0应用开发实战(从Web 2.0到Web 3.0)

第一部分 Flask简介 第1章 安装 1.1 创建应用目录 1.2 虚拟环境 1.2.1 创建虚拟环境 1.2.2 使用虚拟环境 1.3 使用pip安装Python包 1.4 使用pipregs输出包 1.5 使用requirements.txt 1.6 使用pipenv管理包 第2章 应用的基本结构 2.1 网页显示过程 2.2 初始化 2.3 路由和视图函数…

2种数控棋

目录 数控棋1 数控棋2 数控棋1 棋盘&#xff1a; 初始局面&#xff1a; 规则&#xff1a; 规则&#xff1a;双方轮流走棋&#xff0c;可走横格、竖格、可横竖转弯&#xff0c;不可走斜格。每一步均须按棋所在格的数字走步数&#xff0c;不可多不可少。 先无法走棋的一方为…

强制保存 [force save] 是什么?如何使用它?

文章作者&#xff1a;ajun 阅读本文&#xff0c;了解强制保存&#xff08;force save&#xff09;的作用、使用方法&#xff0c;以及如何在 ONLYOFFICE 文档编辑器中开启强制保存。 引言 ONLYOFFICE有两种保存机制&#xff0c;一种是自动保存&#xff0c;一种是强制保存。自动…

“衣物收纳商品/ASTMF2057-23”和“泳池和水疗设施排水盖/16CFR1450” 的合规要求!

近期&#xff0c;不少美国站卖家陆续收到了亚马逊合规政策要求邮件&#xff0c;针对“衣物收纳商品”和“泳池和水疗设施排水盖”品类的合规要求有更新&#xff0c;请您及时关注&#xff01; 衣物收纳商品的合规认证要求&#xff1a; 衣物收纳商品是指带有抽屉或铰链门的家具商…

41 JAVA安全-目录遍历访问控制XSS等安全问题

目录 演示案例Javaweb代码分析-目录遍历安全问题Javaweb代码分析-前端验证安全问题Javaweb代码分析-逻辑越权安全问题Javaweb代码分析-XSS跨站安全问题拓展-安卓APP反编译JAVA代码(审计不香吗?) 演示案例 Javaweb代码分析-目录遍历安全问题 代码解析及框架源码追踪: 第一关&…

ElasticSearch的常用增删改查DSL和代码

es增删改查常用语法 我们日常开发中&#xff0c;操作数据库写sql倒是不可能忘记&#xff0c;但是操作es的dsl语句有时候很容易忘记&#xff0c;特地记录一下方便查找。 DSL语句 1、创建索引 -- 创建索引 PUT /my_index {"mappings": {"properties": {&…

安装conda搭建python环境(保姆级教程)

目录 一、Anaconda简介二、Anaconda安装 2.1 Anaconda下载2.2 Anaconda安装2.3 配置环境变量 三、通过conda配置python环境 3.1 创建并激活虚拟环境3.2 管理虚拟环境 一、Anaconda简介 Anaconda 是专门为了方便使用 Python 进行数据科学研究而建立的一组软件包&#xff0c;…

洛谷P5731 【深基5.习6】蛇形方阵(C语言)

思路感觉还是比较好想的。 从 1 到 n 依次算。先往右&#xff0c;走到头往下&#xff0c;再走到头往左&#xff0c;以此类推。 #include<stdio.h>int main() {int n, i, j, k1,t0;scanf("%d", &n);int a[100][100];if (n % 2 0)t n / 2;elset n / 2 …

轻空间气膜游泳馆助您冬日尽情畅游

随着气温逐渐降低&#xff0c;寒冷的冬季让许多热爱游泳的人感到不便。然而&#xff0c;随着气膜建筑技术的不断创新&#xff0c;气膜游泳馆应运而生&#xff0c;为冬日游泳提供了理想场所。其轻盈灵活的结构、优越的保温性能&#xff0c;以及独特的设计理念&#xff0c;让您在…

前端面试题(持续更新~~)

文章目录 一、基础1、数组常用的方法2、数组有哪几种循环方式&#xff1f;分别有什么作用&#xff1f;3、字符串常用的方法4、原型链5、闭包6、常见的继承7、cookie 、localstorage 、 sessionstrorage区别8、数组去重方法9、http 的请求方式10、数据类型的判断方法11、cookie …