c++:对输入的一串信息(可包含空格)进行加密处理。加密规则如下:将字母表看成首尾衔接的闭合环,对信息中的字母,用该字母前的第5个字母进行替换;对信息中的非字母,不做处理,原样输出。要求:使用string变量存放字符串
时间: 2023-06-25 13:04:29 浏览: 256
以下是一个 C++ 程序的实现,它可以对输入的一串信息进行加密处理:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
getline(cin, s);
for (int i = 0; i < s.length(); i++) {
if (isalpha(s[i])) {
char c = s[i] - 5;
if (c < 'A') {
c += 26;
}
s[i] = c;
}
}
cout << s << endl;
return 0;
}
```
程序首先使用 `getline` 函数从标准输入中读入一行字符串,并存放到 `s` 变量中。然后使用一个循环遍历字符串中的每个字符,如果该字符是一个字母,则将它替换成该字母前的第5个字母;否则不做处理,原样输出。最后输出加密后的字符串。
在循环中,首先使用 `isalpha` 函数判断当前字符是否是一个字母。如果是,则将该字母的 ASCII 码减去 5,得到它前面的第5个字母的 ASCII 码。如果这个值小于字母 A 的 ASCII 码,则需要将其加上 26,使其回到字母表的末尾,从而实现首尾衔接的闭合环。最后将替换后的字符存回原字符串中。
注意:为了能够使用 `isalpha` 函数,需要在程序开头添加 `#include <cctype>` 头文件。
阅读全文