汪意博 gold121837 综合练习—C&C++字符串 实验总用时:00:18:57 资源中心 数据集 nav 第1关:恺撒加密第2步(小写转大写) 300 学习内容 参考答案 记录 凯撒加密 任务描述 测试说明 凯撒加密 据说是恺撒大帝最早使用凯撒加密这种方法传递军情。恺撒加密是一种替代加密方法,根据字母表将明文中的每个字母移动常量位k(密钥),末尾字母则回卷到字母表开头。例如,假设k等于3,则a会被替换D,b会被替换成E,x会被替换为A(这里密文大写)。 例如:明文是"Attack in the morning",密钥k等于3,则密文是"DWWDFN LQ WKH PRUQLQJ"。 恺撒加密 任务描述 本关任务:要求在题干所给代码框架的基础上,完成凯撒加密的第二个步骤,把明文中的小写字母转换成对应的大写字母。 例如:明文是"Attack in the morning",转换后为"ATTACK IN THE MORNING"。 注意:字符串中可以包含空格。 测试说明 平台会对你编写的代码进行测试: 测试输入:Attack in the morning 预期输出:ATTACK IN THE MORNING 开始你的任务吧,祝你成功! resize-icon 32293031282726252423202122181917161514131211109 if (i==0) { dst[i]=src[i]; } else { m=m-32; dst[i]=m; } } 测试结果 自测运行结果 自测输入 Attack in the morning 运行结果 ATTACK 本关最大执行时间:20秒 下一关 run 评测
时间: 2025-03-16 13:19:25 浏览: 54
### 凯撒加密中小写转大写的逻辑解析
在凯撒加密算法中,小写字母可以被转换为大写字母。这种转换通常通过调整 ASCII 值来实现。ASCII 表中,`a-z` 的范围是从 `97-122`,而 `A-Z` 的范围是从 `65-90`。因此,可以通过简单的算术运算将一个小写字母映射为其对应的大写字母。
以下是具体实现方法:
#### 转换逻辑
当遇到一个小写字母时,将其减去 `'a'` 得到其相对于字母表的位置索引(即 `[0, 25]`),然后再加上 `'A'` 来获得相应的大写字母[^4]。例如:
```cpp
if ('a' <= ch && ch <= 'z') {
ch = ch - 'a' + 'A';
}
```
这段代码的作用是判断当前字符是否属于小写字母区间 (`'a'-'z'`),如果是,则执行上述计算并替换原字符。
#### 示例代码
下面是一个完整的 C++ 程序示例,展示如何读取一个字符串并对其中的小写字母进行大写化处理:
```cpp
#include <iostream>
using namespace std;
void convertToUpperCase(string& str) {
for (int i = 0; i < str.length(); ++i) { // 遍历整个字符串
if ('a' <= str[i] && str[i] <= 'z') { // 判断是否为小写字母
str[i] = str[i] - 'a' + 'A'; // 进行大小写转换
}
}
}
int main() {
string input;
cout << "请输入要加密的字符串:" << endl;
getline(cin, input); // 获取整行输入
convertToUpperCase(input);
cout << "转换后的字符串为:" << input << endl;
return 0;
}
```
此程序首先定义了一个函数 `convertToUpperCase()`,用于接收传入的字符串参数,并逐一检查每个字符是否满足条件;一旦发现符合条件的小写字母就立即实施转变操作。最后,在主函数里调用了这个辅助功能并将最终结果打印出来。
### 注意事项
需要注意的是,以上例子仅展示了基本的小写变大写的机制,并未涉及任何实际意义上的加/解密过程。真正的凯撒密码还需要考虑偏移量等因素的影响[^3]。
阅读全文
相关推荐

















