/*
*程序的版权和版本声明部分:
*Copyright(c)2013,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:田成琳
*完成日期:2013年 11月20 日
*版本号:v1.0
*对任务及求解方法的描述部分:
*输入描述: 输入一串文本,最大字符个数不超过100。
*问题描述:
将一串文本译成密码,密码的规律是: 将原来的小写字母全部翻译成大写字母,大写字母全部翻译成小写字母,数字的翻译规律如下:
0——>9
1——>8
2——>7
3——>6
4——>5
5——>4
6——>3
7——>2
8——>1
9——>0
然后将所有字符的顺序颠倒。
*程序输出:输出编码后的结果
*问题分析:
*算法设计:
*/
我的程序:
#include<iostream>
using namespace std;
#include<cstring>
#include<cstdio>
int main()
{
char a[100];
int length;
gets(a);
length=strlen(a); //计算字符串a的长度
for(int i=0;i<=99;i++)
{
if(a[i]>='a'&&a[i]<='z') //小写转大写
{
a[i]=a[i]-32;
}
else if(a[i]>='A'&&a[i]<='Z') //大写转小写
{
a[i]=a[i]+32;
}
else if(a[i] >= '0' &&a[i] <= '9') //数字转换
{
a[i] = 105 - a[i]; // 9 - (a[i] - 48) + 48 // 数字求补
}
}
for(int n=length-1;n>=0;n--) //字符串逆序,本来百度到的用strrev函数反转,但oj提交不通过。length-1的意义在于去掉末尾gets()自动添加的'\0'.
{
cout<<a[n];
}
return 0;
}
运行结果:
心得体会:可是真够简单的,好多函数名,各种功能还都不清楚,只能用自己现学的一丝丝技术,结合百度完成。。。