昨天写的使用<cctype>的一个例子
2012-11-01 11:12
357 查看
题目:将二十六个英文字母按照字母序分为前后两组(各含13个字母),将原发字母转换为同组内对称位置的另一个字母,10个数字分为一组,将原发数字按照0-9,1-8....的对称法转换为另一个数字输入的字母和数字要求最多不超过20个,滤除其他的字符输出转换后的字母、数字字符串。
答案:
#include <iostream>
#include <string>
#include <cctype>
int main(int argc, char * argv[])
{
std::string input_str;
std::getline(std::cin,input_str);
std::string::size_type str_size=input_str.size();
int sentinel(0);
for(std::string::size_type i=0;i!=str_size;++i)
{
++sentinel;
if(sentinel<=20)
{
if(::isdigit(input_str[i])) //105 is the sum of '0' and '9'
input_str[i]=105-input_str[i];
else if(::ispunct(input_str[i])) //punctuation ,transfer to *
input_str[i]='*';
else if(::isalpha(input_str[i]))
{
input_str[i]=::tolower(input_str[i]);//only considering the lower alphabet
if(input_str[i]<=109)
input_str[i]=206-input_str[i];
else
input_str[i]=232-input_str[i];
}
else
input_str[i]='\0';
}
else input_str[i]='\0';
}
std::cout<<" uncoding sequence:\n"<<input_str<<std::endl;
int temp;
std::cin>>temp;
return 0;
}
答案:
#include <iostream>
#include <string>
#include <cctype>
int main(int argc, char * argv[])
{
std::string input_str;
std::getline(std::cin,input_str);
std::string::size_type str_size=input_str.size();
int sentinel(0);
for(std::string::size_type i=0;i!=str_size;++i)
{
++sentinel;
if(sentinel<=20)
{
if(::isdigit(input_str[i])) //105 is the sum of '0' and '9'
input_str[i]=105-input_str[i];
else if(::ispunct(input_str[i])) //punctuation ,transfer to *
input_str[i]='*';
else if(::isalpha(input_str[i]))
{
input_str[i]=::tolower(input_str[i]);//only considering the lower alphabet
if(input_str[i]<=109)
input_str[i]=206-input_str[i];
else
input_str[i]=232-input_str[i];
}
else
input_str[i]='\0';
}
else input_str[i]='\0';
}
std::cout<<" uncoding sequence:\n"<<input_str<<std::endl;
int temp;
std::cin>>temp;
return 0;
}
相关文章推荐
- HTML中<div>标签的一个简单的使用和介绍
- Mybatis 使用<where>标签时遇到的一个问题与<trim>标签的使用
- 核心标签库<c:set>标签、<c:choose>标签、<c:forEach>标签&<c:if>标签的使用例子
- 写一个MyList<T>的类,内部用T[]实现(不能使用系统的List<T>类),需要实现的接口如下:
- //2.使用宏将一个数二进制中的奇数位和偶数为进行交换。 #include<stdio.h> #include<stdlib.h> #define EXH(x) \ ((x & 0x5555555
- 一个使用虚函数的例子 ---&gt; 南郁老师
- 使用yii的layout,加入<?php echo $content; ?>这句话时,它会自动在子页面上面添加一个div包裹
- js正则:匹配一个html的tagname的开始标签,主要是解决包含&lt;&gt;(正则的效率问题建议不使用)
- 一个Thiking泛型的例子,突然发现理解了List&lt;String&gt;的原理
- unity3D ShaderLab <五>漫反射光照改善技巧之使用2D ramp texture来创建一个假的BRDF(双向反射分布函数)
- 使用request生成一个枚举类获取所有的<input>的内容
- 一个分解字符串函数strtok 实现(不使用<string.h>)
- <一>Ioc控制反转——手把手教学:如何配置并使用单元测试一个spring框架(附源码)
- <备忘1000> ffmpeg命令行使用例子
- Python入门的36个例子 之 35 -> try – 一个使用的例子
- <cocos2d-x for wp7>使用cocos2d-x和BOX2D来制作一个BreakOut(打砖块)游戏(二)
- <Ibatis in action>中使用动态SQL的一个小细节提示(与CDATA)
- spring使用@value关于<context:component-scan base-package=”com.baidu” />的一个错误
- 使用泛型类型System.Collections.Generic.Icomparer &lt;T&gt; 需要一个类型参数
- Dictionary&lt;string, string&gt;是一个泛型使用说明