C实例--判断一个字符串是否是回文数
2015-06-10 09:34
232 查看
回文是指顺读和反读内容均相同的字符串,例如”121”,”ABBA”,”X”等。本实例将编写函数判断字符串是否是回文。
引入两个指针变量,开始时,两个指针分别指向字符串的首末字符,当两个指针所指字符相等时,两个指针分别向后和向前移动一个字符位置,并继续比较,直到两个指针相遇,说明该字符串是回文,如果比较过程中发现两个指针指向的字符不相等,则判断该字符串不是回文。
下面是代码的实现部分:
下面是程序的运行结果:
在做这个实例的时候,让我想到了之前有一个实例是判断一个数是否是回文数,是这样做的,假设一个数n=232,从各位数字开始,分别为2,3,2;这些数字分别乘以100,10,1最后相加,比较和原来的数是否相等,就能判断该数书否是回文数字了。
引入两个指针变量,开始时,两个指针分别指向字符串的首末字符,当两个指针所指字符相等时,两个指针分别向后和向前移动一个字符位置,并继续比较,直到两个指针相遇,说明该字符串是回文,如果比较过程中发现两个指针指向的字符不相等,则判断该字符串不是回文。
下面是代码的实现部分:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 20 int Cycle(char *s); /** * 回文是指顺读和反读内容均相同的字符串,例如"121","ABBA","X"等。 * 本实例将编写函数判断字符串是否是回文。 * */ int main() { char s ; while(1){ printf("Please input the string you want to judge(input ^ to quit):\n"); scanf("%s",&s); if(s[0] == '^'){ break; } if(Cycle(s)){ printf("%s is a cycle string!\n",s); }else{ printf("%s is not a cycle string!\n",s); } } return 0; } /** * 判断字符串s是否是回文 * * param: * char *s: 被判断的字符串 * return: * 0: 表示字符串s不是回文数 * 非零: 表示字符串s是回文数 */ int Cycle(char *s){ char *h,*t; for(h = s,t = s + strlen(s) - 1;t > h;h++,t--) if(*h != *t) break; return t <= h; }
下面是程序的运行结果:
在做这个实例的时候,让我想到了之前有一个实例是判断一个数是否是回文数,是这样做的,假设一个数n=232,从各位数字开始,分别为2,3,2;这些数字分别乘以100,10,1最后相加,比较和原来的数是否相等,就能判断该数书否是回文数字了。
相关文章推荐
- 详解JavaScript中getFullYear()方法的使用
- 找工作_笔试_C_01
- 中国软件杯--解密陌生人(1)
- 腾讯移动性能评测专家叶方正:Android优化笔记
- Datable 详解,及用法
- SFTP命令
- 帝国cms建站总结
- "mkimage" command not found - U-Boot images will not be built
- nc 前台重新设置值等例子
- java API文档翻译
- 黑客帝国屏幕保护源码
- JavaScript中判断函数、变量是否存在
- 15.3 访问 AlwaysOn 故障转移群集
- 微博项目,源码+SQL
- WKWebView 的使用简介
- Django-RQ首页、文档和下载 - Django 和 RQ 集成 - 开源中国社区
- centos下ssh无密码验证
- WCF使用泛型方法的问题
- 点击按钮,并且实现增加一个按钮的效果 (附效果图)
- WKWebView 的使用简介