C程序设计 (第四版) 谭浩强 习题3.6
习题 3.6 请编程序将"China"译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如:字母“A”后面第4个字母时"E",用"E"代替"A"。因此,“China"应译为"Glmre”。请编一程序,用赋初值的方法使c1, c2, c3, c4, c5这5个变量的值分别为’C’, ‘h’, ‘i’, ‘n’, ‘a’, 经过运算,使c1, c2, c3, c4, c5分别为’G’, ‘l’, ‘m’, ‘r’, ‘e’。分别用putchar函数和printf函数输出这个5个字符。
IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
方法1:
#include <>
#include <>
int main()
{
//给5个变量赋初值
char c1 = 'C';
char c2 = 'h';
char c3 = 'i';
char c4 = 'n';
char c5 = 'a';
//输出原代码
putchar(c1);
putchar(c2);
putchar(c3);
putchar(c4);
putchar(c5);
putchar('\n');
//原代码加密
c1 += 4;
c2 += 4;
c3 += 4;
c4 += 4;
c5 += 4;
printf("%c%c%c%c%c\n", c1, c2, c3, c4, c5);
system("pause");
return 0;
}
方法2:使用函数的模块化设计
#include <>
#include <>
void input(char *str){
printf("Enter character: ");
scanf("%s", str);
}
void encryption(char *str){
for(char *p = str; *p != '\0'; p++){
*p += 4;
}
}
void output(char *str){
printf("%s\n", str);
}
int main()
{
char *str = (char*)malloc(6 * sizeof(char));
input(str);
printf("Original character: ");
output(str);
encryption(str);
printf("Encrypted character: ");
output(str);
free(str);
system("pause");
return 0;
}