C语言指针转数组6,C语言编程(练习6:数组与指针)

题目:加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。算法:明文中的字母转换成其后的第 4 个字母,例如,A 变成 E(a 变成 e),Z 变成 D,非字母字符不变;同时将密文每两个字符之间插入一个空格。例如, China 转换成密文为 G  l  m  r  e。要求:在函数 change 中完成字母转换,在函数 insert 中完成增加空格,用指针传递参数。

知识点:

+4后,超出z范围的处理

代码实现:

/**< 加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。算法:明文中

的字母转换成其后的第 4 个字母,例如,A 变成 E(a 变成 e),Z 变成 D,非字母字符不

变;同时将密文每两个字符之间插入一个空格。例如, China 转换成密文为 G l m r e。

要求:在函数 change 中完成字母转换,在函数 insert 中完成增加空格,用指针传递

参数 */

#include

#include

#define MAX 100

#define MAX2 200

void change(char *s);

void insert(char *s, char *fs);

int main()

{

char s[MAX];

char fs[MAX2];

printf("输入明文:\n");

gets(s);

change(s);

insert(s, fs);

printf("密文为:%s\n",fs);

return 0;

}

void change(char *s)

{

int i;

for(i=0; s[i]!='\0'; i++)

{

if(s[i]>64 && s[i]<91)

{

s[i]=(s[i]+4);

if(s[i]>90)

{

s[i]=s[i]-26;

}

}

else if(s[i]>96 && s[i]<123)

{

s[i]=(s[i]+4);

if(s[i]>122)

{

s[i]=s[i]-26;

}

}

}

}

void insert(char *s, char *fs)

{

int i,j;

for(i=0,j=0; s[i]!='\0'; i++)

{

fs[j] = s[i];

fs[j+1] = ' ';

j += 2;

}

}

0818b9ca8b590ca3270a3433284dd417.png运行结果: