输入一个字符串和数字m,编写程序,将输入的字符串译成密码,译码规律是:用原来的字母后面 m个字母代替原来的字母。用C语言表示,运行时间短
时间: 2024-10-10 08:14:23 浏览: 109
Information-Theory-TheUniqueDecodableCode
为了创建一个C++程序,我们将使用`std::string`来处理输入的字符串,并使用模运算来确保字母循环替换。以下是一个简单的示例,用于将字符串中的每个字符按照给定的偏移量进行循环替换:
```cpp
#include <iostream>
#include <string>
std::string encrypt(const std::string &input, int shift) {
std::string result;
for (char c : input) {
if (isalpha(c)) { // 检查是否为字母
char new_char = islower(c) ? static_cast<char>((c + shift - 'a') % 26 + 'a') : static_cast<char>((c + shift - 'A') % 26 + 'A');
result += new_char;
} else {
result += c; // 非字母字符保持不变
}
}
return result;
}
int main() {
std::string input;
int m;
std::cout << "Enter a string: ";
getline(std::cin, input);
std::cout << "Enter the number m: ";
std::cin >> m;
std::string encrypted = encrypt(input, m);
std::cout << "Encrypted String: " << encrypted << std::endl;
return 0;
}
```
在这个程序中,`encrypt()` 函数接收输入的字符串和偏移量 `shift`。对于输入的每个字符,如果是小写字母,我们就根据ASCII码计算新的字母(取模操作确保在'a'到'z'范围内),如果是大写字母,则对应地处理'A'到'Z'范围。非字母字符直接添加到结果字符串。
运行这个程序时,请确保输入的是有效的英文字符和整数 `m`,因为此代码没有做错误检查。
阅读全文