#include <stdio.h>
int main(int argc, char **argv)
{
if(argc<2) return 1;
char str[100];
gets(str);
for(int i=0; str[i]!='\0'; i++)
{
if(str[i]>='a' && str[i] <='z') //小写字母直接用密码表对应字母替换
{
printf("%c",argv[1][str[i]-'a']);
}
else if(str[i]>='A' && str[i] <='Z') //大写字母先找到密码表对应字符,再转换成大写
{
printf("%c",argv[1][str[i]-'A']-32);
}
else //非字母原样输出
printf("%c",str[i]);
}
return 0;
}
1)参数1保存在一个数组中,这个是密码map。
2)读输入的字符串,
2.1)如果是字符,则根据其在26字母表中的位置转换,转换规则查第一步保存的map。
大写转成对应大写,小写转成对应的小写。
2.2)如果不是字符,不转换。
3)输出转换之后的字符串。
这个问题不错