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;
}

心得体会:注意处理关于数字的转换,开始想复杂了。。。后来改了好几遍才整理出来的

经验分享 程序员 微信小程序 职场和发展