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)
