(要将"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.0分

3 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 2 条评论

乐迪钱魏润禹 1年前 回复TA
@乐迪钱魏润禹 一年后的自己来啦
乐迪钱魏润禹 2年前 回复TA
真棒