19周OJ简单编码。。指针刷题
问题及代码:
/* 题目描述 将一串文本译成密码,密码的规律是: 将原来的小写字母全部翻译成大写字母,大写字母全部翻译成小写字母,数字的翻译规律如下: 0——>9 1——>8 2——>7 3——>6 4——>5 5——>4 6——>3 7——>2 8——>1 9——>0 然后将所有字符的顺序颠倒。 输入 输入一串文本,最大字符个数不超过100。 输出 输出编码后的结果。 样例输入 china 样例输出 ANIHC 提示 */ #include <iostream> #include <cstdio> using namespace std; void change(char *str,int n) { int i=0; char t; for(i=0;i<(n+1)/2;i++) { t=str[i]; str[i]=str[n-i]; str[n-i]=t; } for(i=0;i<=n;i++) { if(str[i]>=a&&str[i]<=z) { str[i]=str[i]-32; } else if (str[i]>=A&&str[i]<=Z) { str[i]=str[i]+32; } else if(str[i]>=0&&str[i]<=9) { str[i]=105-str[i]; } } } int main() { char str1[100]; gets(str1); int i=0,j=0; while (str1[i]!= ) { i++; } change(str1,i-1); for(j=0;j<i;j++) { cout<<*(str1+j); } return 0; }
心得体会:注意处理关于数字的转换,开始想复杂了。。。后来改了好几遍才整理出来的
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
密码的显示与隐藏(js)