题目描述:
输入
从键盘输入一批字符,占一行,以@结束。
输出
输出占一行
加密规则:
1)、所有字母均转换为小写。
2)、若是字母’a’到’y’,则转化为下一个字母。
3)、若是’z’,则转化为’a’。
4)、其它字符,保持不变。
样例输入
Kyh520@
样例输出
lzi520
注意:3)与20是并列的,并不是说先将字母变化后在进行判断,是不是’z’。、
代码一
# include<stdio.h>
int main()
{
char ch;
int count1,count2;
while((ch=getchar())!='@') //此处逻辑运算符的优先级高于赋值运算符,加括号提高优先级
{
if(ch>='A'&&ch<='Z')
{
ch=ch+'a'-'A';
}
if(ch>='a'&&ch<='z')
{
if(ch=='z')
{
ch='a';
}
else
{
ch=ch+1;
}
}
printf("%c",ch);
}
return 0;
}
注意:逻辑运算符与其他运算符相比较,其优先级高于赋值运算符的优先级,但低于比较运算符的优先级。
其中 非高于与高于或。
代码二
# include<stdio.h>
int main()
{
char ch[1000];
int count1,count2;
for(count1=0; ;count1++)
{
scanf("%c",&ch[count1]);
if(ch[count1]=='@')
{
break;
}
}
for(count2=0;count2<count1;count2++)
{
if(ch[count2]>='A'&&ch[count2]<='Z')
{
ch[count2]=ch[count2]+'a'-'A';
}
if(ch[count2]>='a'&&ch[count2]<='z')
{
if(ch[count2]=='z')
{
ch[count2]='a';
}
else
{
ch[count2]+=1;
}
printf("%c",ch[count2]);
}
}
return 0;
}