C语言简单好玩编码,TZC1464:C语言实验题——简单编码

描述: 将一串文本译成密码,密码的规律是:将原来的小写字母全部翻译成大写字母,大写字母全部翻译成小写字母,数字的翻译规律如下:

0——>9

1——>8

2——>7

3——>6

4——>5

5——>4

6——>3

7——>2

8——>1

9——>0

然后将所有字符的顺序颠倒。

输入:

输入一串文本,最大字符个数不超过100。

输出:

输出编码后的结果。

样例输入: china

样例输出: ANIHC

-------------------------------------------------------------------------------------------------------------

分析:将字符串进行大小写转换,然后逆序输出该字符串。在C语言中将字符大小写转换有两种方法,一种方法是进行算术运算,加32,转换为小写,减32,转换为大写,当然也可以用tolower()函数和toupper()函数。

同样,判断一个字符是否为大写或小写,也可以有两种方法,一种是逻辑表达式,判断大写:c

>=’A’ && c <= ‘Z’,判断小写:c

>=’a’ && c <=’z’。另一种是使用islower()函数与isupper()函数。

数字的处理,你会发现,实际上就是用9减去当前数字即可,当然也可以用开关语句实现。数字的判断可以用逻辑表达式,c

>=’0’ && c <= ‘9’,也可以用isdigit()函数。

(1)函数法:

#include < stdio.h >

#include < ctype.h >

#include < string.h >

int main()

{

char

str[100];

int

i,n;

gets(str);

n=strlen(str);

for(i=0;str[i]!='\0';i++)

{

if(isupper(str[i]))

str[i]=tolower(str[i]);

else

if(islower(str[i]))

str[i]=toupper(str[i]);

else

if(isdigit(str[i]))

str[i]='9'-str[i]+'0';

}

for(i=n-1;i>=0;i--)

printf("%c",str[i]);

printf("\n");

return

0;

}

(2)逻辑表达式法:

#include < stdio.h >

#include < string.h >

int main()

{

char

str[100];

int

i,n;

gets(str);

n=strlen(str);

for(i=0;str[i]!='\0';i++)

{

if(str[i]>='A'&&

str[i]<='Z')

str[i]+=32;

else

if(str[i]>='a'&&str[i]<='z')

str[i]-=32;

else if(str[i]>='0'

&& str[i]<='9')

{

switch(str[i])

{

case '0':

str[i]='9';break;

case '1':

str[i]='8';break;

case '2':

str[i]='7';break;

case '3':

str[i]='6';break;

case '4':

str[i]='5';break;

case '5':

str[i]='4';break;

case '6':

str[i]='3';break;

case '7':

str[i]='2';break;

case '8':

str[i]='1';break;

case '9':

str[i]='0';break;

}

}

}

for(i=n-1;i>=0;i--)

printf("%c",str[i]);

printf("\n");

return

0;

}

---------------------------

python3 代码如下:

s=input()

newstring=str()

for x in s:

if

x.isdigit():

newstring+=chr(ord('9')-ord(x)+ord('0'))

else:

newstring+=x

newstring=newstring.swapcase()

print(newstring[::-1])

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值