代码如下:
#include <iostream>
#include <string>
using namespace std;int main(){string str = "rkpryyrag";for (int i = 0; i < str.length(); i++){if (str[i] >= 'a' && str[i] <= 'z'){if (str[i] - 'a' < 13){cout << char(str[i] + 13);}else {cout << char(str[i] - 13);}}else {cout << str[i];}}return 0;
}
解释如下:
string str = "rkpryyrag";
:定义了一个string
类型的变量str
,并将其初始化为"rkpryyrag"
。for (int i = 0; i < str.length(); i++)
:使用for
循环遍历字符串str
中的每一个字符。i
作为索引从 0 开始,循环条件是i
小于字符串的长度,每次循环结束i
加 1。if (str[i] >= 'a' && str[i] <= 'z')
:检查当前字符是否是小写字母,因为小写字母的 ASCII 值范围是'a'
到'z'
。
if (str[i] - 'a' < 13)
:对于小写字母,计算该字母与'a'
的差值,如果差值小于 13,那么将该字符的 ASCII 值加上 13。
cout << char(str[i] + 13);
:将加上 13 后的 ASCII 值转换为字符并输出。else
:如果小写字母与'a'
的差值大于等于 13,将该字符的 ASCII 值减去 13。
cout << char(str[i] - 13);
:将减去 13 后的 ASCII 值转换为字符并输出。else
:如果当前字符不是小写字母,直接输出该字符,这是为了处理可能出现在字符串中的非小写字母字符,如空格、数字、大写字母或特殊字符。总的来说,这段代码的主要功能是对字符串中的小写字母进行一种加密操作。对于小写字母,将其 ASCII 值加上或减去 13,这类似于一种简单的凯撒密码加密。如果字符在
'a'
到'm'
范围内,就加上 13,将其转换为'n'
到'z'
范围内的字母;如果字符在'n'
到'z'
范围内,就减去 13,将其转换为'a'
到'm'
范围内的字母。对于非小写字母的字符则保持原样输出。这种加密方式可以对字符串中的小写字母进行简单的混淆,而不改变其他字符。
觉得有帮助就给博主点个关注叭~~
有问题的可以私信或者在评论区一起交流
友友们一起加油叭QAQ