题目描述
输入一个字符串,如果是26个英文字母,将26个字母表中的字符循环右移3位进行加密。输出加密后的密文。
示例代码
#include <stdio.h>
#define MAXSIZE 5000
int isUP(char c);
int isLow(char c);
void jM(char* c);
int main()
{
char str[MAXSIZE];
int i = 0;
scanf("%s", str);
while(str[i] != '\0')
{
jM(&str[i]);
i++;
}
printf("%s\n", str);
}
int isUP(char c)
{
if(c >= 'A' && c <= 'Z')
return 1;
return 0;
}
int isLow(char c)
{
if(c >= 'a' && c <= 'z')
return 1;
return 0;
}
void jM(char* c)
{
if(isLow(*c) == 1)
{
if(*c >= 'x')
*c = *c + 3 - 26;
else
*c = *c + 3;
}
else if(isUP(*c) == 1)
{
if(*c >= 'X')
*c = *c + 3 - 26;
else
*c = *c + 3;
}
}
提示
注意在函数中修改字符的值的时候传进去的是值,而不是地址,因此函数结束后并不会修改字符的值,因此要加引用。