C编程:输入一个字符串,按照下述规律译成密码后输出。规律是:A→Z,a→z,B→Y,b→y,C→X,c→x……

是C语言的编译,最好能解释下那个转换的意思,就是那个if循环里的意思。

程序如下:
#include<STDIO.H>
main()
{char a[5];
int i=0;
printf("please input 5 string:\n");
scanf("%s",a);
for(i=0;i<5;i++)
{
if(a[i]>=65 && a[i]<=90)
{
a[i]=155-a[i];

}
if(a[i]>=97 && a[i]<=122)
{
a[i]=219-a[i];
}
}
printf("the new string is:\n");
printf("%s",a);

}
主要是分析转换规则,A-Z,B-Y....它们的ASCII码之和均为155,a-z,b-y它们的ASCII码之和为219,故问题得以解决.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-10
读入;
for (i=0;i<"字串长度";i++)
if (str[i]>=65 && str[i]<=90) str[i]=155-str[i];
else if (str[i]>=97 && str[i]<=122) str[i]=219-str[i];
输出;
第2个回答  2011-02-11
#include<stdio.h>
void transform(char *str)
{
while(*str!='\0')
{
if(*str>64&&*str<91)
{
*str=155-*str;
}
else if(*str>96&&*str<123)
{
*str=219-*str;
}
str++;
}
}
main()
{
char str[100];
scanf("%s",str);
transform(str);
printf("%s\n",str);
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网