回文串和镜像串(摘)
2016-02-14 19:49
357 查看
#include<iostream> #include<stdio.h> #include<string.h> #include<ctype.h> const char* rev="A 3 HIL JM O 2TUVWXY51SE Z 8 "; //前26项为各个大写字母的镜像,后10个是数字1至9的镜像(不输入数字0) const char* msg[]={"not a palindrome","a regular palindrome","a mirrored string","a mirrored palindrome"}; char r(char ch) //返回字符ch的镜像字符 { if(isalpha(ch))return rev[ch-'A']; //调用函数isalpha来判断字符ch是否为字母,在ctype.h中定义(类似的还有idigit,isprint等) return rev[ch-'0'+25]; //前面是26个英文字母 } int main() { char s[30]; while(scanf("%s",s)==1){ int len=strlen(s); int p=1,m=1; for(int i=0;i<(len+1)/2;i++){ if(s[i]!=s[len-1-i])p=0; //不是回文串 if(r(s[i])!=s[len-1-i])m=0; //不是镜像串 } printf("%s -- is %s.\n\n",s,msg[m*2+p]); } system("pause"); return 0; }
英文不好!!
a regular palindrome 普通回文
a mirrored string 镜像字符串
a mirrored palindrome 镜像回文
样例输出
PS:头文件ctype.h中包含的isalpha、isdigit、isprint等工具可以用来判断字符的属性,而toupper、tolower等工具可以用来转换大小写。
相关文章推荐
- Adafruit的樹莓派教程第十三課:電力控制
- Java基础——I/O续
- Mysql 使用分区
- ViewPager标签栏滑条
- Swift开发笔记-Mac OS X 天气预报应用开发(Xcode7.2)
- Material-design icon生成插件
- Adafruit的樹莓派教程第十二課:感知運動
- 【设计模式】4、原型模式
- centos 7 yum源配置
- [C++]在cout時自動補零 【格式化输出】
- POJ1837 动态规划 天平问题
- 学霸博客链接
- PHP关于上传图片的知识点
- 乱七八糟的读书~~
- Swift_DayTwo
- SNMP Tutorial
- git中忽略UserInterfaceState.xcuserstate的方法
- 2016梦想之谈
- Swift OS X NSColectonView显示网络列表数据
- hdu3966 树链剖分入门题