东华OJ基础题 66 加密

问题描述 :

编写一个加密程序,用来加密一个字符串。加密规则如下:
把字符串中的所有数字0、1 … 9分别换成小写英文字母a、b … j。
把字符串中的所有小写英文字母a、b … j分别换成数字0、1 … 9。
其它字符保持不变。
输入说明 :

你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组输入数据占一行,其中只包含一个字符串,即需要被加密的字符串。该字符串包含不超过100个字符,只包含可见的ASCII字符,并且不包含空格、制表符或换行符。在行首和行尾没有多余的空格;所有数据前后没有多余的空行;两组数据之间没有多余的空行。
输出说明 :

对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的文本终端,例如你在Windows中启动该程序所用的命令行终端)依次输出一组对应的答案。每组答案占一行,其中只包含一个字符串,即问题描述中的加密结果。在行首和行尾不要输出多余的空格;在所有数据前后不要输出多余的空行;在两组数据之间不要输出多余的空行

总结
1.郁闷死了,不知道为什么数字转成小写字母我用
str[i]+=49;
也就是利用整数和小写字母的ascll码之间的关系不行,
而小写字母转化成0-9就可以
str[i]-=49;
简直了!!!
2.这道题不难,就是用了很长时间才AC,加油,我太菜了。


#include <stdio.h>
#include <string.h>
 #include<ctype.h>
int main(){
	char str[101];
        int i,len;
	while(gets(str)){
	len=strlen(str);
	for( i=0;i<len;i++){
		if(isdigit(str[i]))
			str[i]=str[i]-'0'+'a';
		else if(str[i]>='a'&&str[i]<='j')
			str[i]=str[i]-'a'+'0';
                 putchar(str[i]);
	}
	printf("\n");
	}
	return 0;
}


发布了17 篇原创文章 · 获赞 1 · 访问量 125

猜你喜欢

转载自blog.csdn.net/weixin_44205451/article/details/104569392
66