练习 在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-w,A-W的字母用其后第3个字母替代,如,a用d表示。把x-z和X-Z用a-c和A-C替代,则可得到一个简单的加密字符串。 输入描述: 读取这一行字符串,每个字符串长度小于80个字符输出描述: 对于每组数据,输出每行字符串的加密字符串。 用C++实现
时间: 2024-02-01 19:14:17 浏览: 217
```cpp
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
while(getline(cin,s))
{
for(int i=0;i<s.length();i++)
{
if(s[i]>='a'&&s[i]<='w')
s[i]+=3;
else if(s[i]>='A'&&s[i]<='W')
s[i]+=3;
else if(s[i]>='x'&&s[i]<='z')
s[i]-=23;
else if(s[i]>='X'&&s[i]<='Z')
s[i]-=23;
}
cout<<s<<endl;
}
return 0;
}
```
注意:
1. 读入字符串时需要用 getline(cin,s) 函数,因为字符串中可能包含空格;
2. 字符串也可以像数组一样使用下标访问每一个字符;
3. 字符可以直接进行加减运算,ASCII码表中a的值为97,z的值为122,A的值为65,Z的值为90;
4. 当需要输出字符串时,记得在末尾加上换行符 \n,否则输出会出现问题。
相关问题
在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中
的每个字符都向后移动三个位置,即把a变成d,b变成e,c变成f,……,最后把所有变换后的字符连成一个字符串输出。
例如,输入字符串"hello",加密后得到字符串"khoor"。
这种加密方法虽然简单,但对于一些简单的情报传递还是有一定的保密作用。当然,在现代的情报传递中,需要使用更加复杂的加密算法来保护情报的安全。
用C代码解决:在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的对给定的一个字符串,把其中从a-w,A- W的字母用其后第3个字母替代,如,a用d表示。把×-z和X- Z用a-c和A-C替代,则可得到一个简单的加密字符串。 输入描述: 读取这一行字符串,每个字符串长度小于80个字符 输出描述: 对于每组数据,输出每行字符串的加密字符串。
以下是C代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[81];
while (fgets(str, 81, stdin)) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
char c = str[i];
if (c >= 'a' && c <= 'w') {
c += 3;
} else if (c >= 'A' && c <= 'W') {
c += 3;
} else if (c >= 'x' && c <= 'z') {
c -= 23;
} else if (c >= 'X' && c <= 'Z') {
c -= 23;
}
putchar(c);
}
}
return 0;
}
```
程序使用 fgets 函数读取输入的字符串,然后依次处理每个字符,根据题目要求进行加密,最后输出加密后的字符串。
阅读全文