博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C实例--判断一个字符串是否是回文数
阅读量:6855 次
发布时间:2019-06-26

本文共 1185 字,大约阅读时间需要 3 分钟。

版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/46437939

回文是指顺读和反读内容均相同的字符串,例如”121”,”ABBA”,”X”等。本实例将编写函数判断字符串是否是回文。

引入两个指针变量,开始时,两个指针分别指向字符串的首末字符,当两个指针所指字符相等时,两个指针分别向后和向前移动一个字符位置,并继续比较,直到两个指针相遇,说明该字符串是回文,如果比较过程中发现两个指针指向的字符不相等,则判断该字符串不是回文。

下面是代码的实现部分:

#include 
#include
#include
#define N 20int Cycle(char *s);/** * 回文是指顺读和反读内容均相同的字符串,例如"121","ABBA","X"等。 * 本实例将编写函数判断字符串是否是回文。 * */int main(){ char s[N]; 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最后相加,比较和原来的数是否相等,就能判断该数书否是回文数字了。

你可能感兴趣的文章
innerHTML与innerText的异同
查看>>
【阿里云MVP Meetup 第五期】如何使用Elasticsearch进行智能运维
查看>>
学习笔记:md5加密算法极其应用(转)
查看>>
Azure ARM (17) 基于角色的访问控制 (Role Based Access Control, RBAC) - 自定义Role
查看>>
beginner3
查看>>
QT Creater + vs2010 发布程序
查看>>
android adb shell 总结
查看>>
闲话WPF之二五(WPF中的ControlTemplate [3])
查看>>
JavaScript之web通信
查看>>
ubuntu安装和配置SVN【转】
查看>>
顶级程序员的心得 Coders at Work (I)
查看>>
linux-3.2.36内核启动2-setup_arch中的内存初始化1(arm平台 分析高端内存和初始化memblock)【转】...
查看>>
cocos2dx 3.1从零学习(六)——CocosStudio(VS2013project导入及环境设置)
查看>>
百度笔试题---一个简单的递归实现
查看>>
Access 与SQL Server 2000
查看>>
SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)
查看>>
Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法
查看>>
(转).net面试问答(大汇总)
查看>>
程序员讨论《黑客帝国》(一)真实与虚拟
查看>>
二次元知识扫盲
查看>>