是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,故问题得以解决.
#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];
输出;
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);
}
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);
}