(要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.
例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译为"Glmre"。
请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。)
第四个字母,就是把输入的字母的每一位往后移4位
(C→G:
A B C D(1) E(2) F(3) G(4) H......)
移4位,总不能用if(如果)语句把所有情况列举出来吧?
要是能像数字一样,直接加4就好了
还真有,如果让一个整形变量装字符,字符就会变成一个特定的值,这个值叫做ASCII码
32: ' '
33: '!'
34: '"'
35: '#'
36: '$'
37: '%'
38: '&'
39: '''
40: '('
41: ')'
42: '*'
43: '+'
44: ','
45: '-'
46: '.'
47: '/'
48: '0'
49: '1'
50: '2'
51: '3'
52: '4'
53: '5'
54: '6'
55: '7'
56: '8'
57: '9'
58: ':'
59: ';'
60: '<'
61: '='
62: '>'
63: '?'
64: '@'
65: 'A'
66: 'B'
67: 'C'
68: 'D'
69: 'E'
70: 'F'
71: 'G'
72: 'H'
73: 'I'
74: 'J'
75: 'K'
76: 'L'
77: 'M'
78: 'N'
79: 'O'
80: 'P'
81: 'Q'
82: 'R'
83: 'S'
84: 'T'
85: 'U'
86: 'V'
87: 'W'
88: 'X'
89: 'Y'
90: 'Z'
91: '['
92: '\'
93: ']'
94: '^'
95: '_'
96: '`'
97: 'a'
98: 'b'
99: 'c'
100: 'd'
101: 'e'
102: 'f'
103: 'g'
104: 'h'
105: 'i'
106: 'j'
107: 'k'
108: 'l'
109: 'm'
110: 'n'
111: 'o'
112: 'p'
113: 'q'
114: 'r'
115: 's'
116: 't'
117: 'u'
118: 'v'
119: 'w'
120: 'x'
121: 'y'
122: 'z'
123: '{'
124: '|'
125: '}'
126: '~'
用代码(以下)可得到
#include<iostream>
using namespace std;
int main()
{
for(int i=32;i<=126;i++)
{
cout<<i<<':'<<" '"<<char(i)<<"'"<<endl;
}
}
强制转换也行
其中,在进行运算时char(i)表示把i强制转换成char形式来输出
所以,我们先定义一个字符串,输入字符串c,用for循环把c一位一位的转换成int形式,加上4,在转换成int形式,最后输出字符串
#include<iostream>
#include<cstring> //字符串的输入,输出函数头文件
//c++万能头文件,包含了大部分的头文件 #include<bits/stdc++.h>
using namespace std;
int main()
{
char c[256]; //定义字符串c
gets(c);
for(int i=0;i<strlen(c)/*求字符串c的长度*/;i++)
{
if(c[i]>='A'&&c[i]<='V'||c[i]>='a'&&c[i]<='v') //加密ing
{
c[i]=char((int)c[i]+4);
}
else if(c[i]>='W'&&c[i]<='Z'||c[i]>='w'&&c[i]<='z') //加密ing
{
c[i]=char((int)c[i]+4-26);
}
}
puts(c);
return 0;
}
参考程序
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char c[256];
gets(c);
for(int i=0;i<strlen(c);i++)
{
if(c[i]>='A'&&c[i]<='V'||c[i]>='a'&&c[i]<='v')
{
c[i]=char((int)c[i]+4);
}
else if(c[i]>='W'&&c[i]<='Z'||c[i]>='w'&&c[i]<='z')
{
c[i]=char((int)c[i]+4-26);
}
}
puts(c);
return 0;
}
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复