首页 > 代码库 > 49.输入一字符串,检查是否回文 (回文是指正反序相同,如,LeveL)
49.输入一字符串,检查是否回文 (回文是指正反序相同,如,LeveL)
(1)
#include<iostream>using namespace std;int main(){ int k=0; int j; char b[20]; cout<<"please input an number: "<<endl; cin>>b; for(j=0;j<20&&b[j]!=‘\0‘ ;j++); //字符串有一个结束符,判断它可知是否结束 { k=j; } for(int m=0;m<k;m++) { if(b[m]!=b[k-m-1]) { cout<<"这不是回文数!"<<endl; return -1;//跳出循环 } //不能判断一个就确定是回文 } //检查完毕,是回文才会到这里 cout<<"这是回文数!"<<endl; return 0;}
(2)
#include<iostream>#include<string.h>//这个头文件可以使用strlen函数using namespace std;int main(){ int k=0; int m,n; char b[20]; cout<<"please input an number: "<<endl; cin>>b; for (m=0,n=strlen(b) - 1; (m!=n) && (m+1!=n); m++, n--) { if (b[m] != b[n]) { cout<<"这不是回文数!"<<endl; return -1;//跳出循环 }//不能判断一个就确定是回文 } //检查完毕,是回文才会到这里 cout<<"这是回文数!"<<endl; return 0;}
(3)运用指针
#include<iostream>#include<string.h>//这个头文件可以使用strlen函数using namespace std;int HuiWen(char*);int main(){ int k=0; int m,n; char b[20]; cout<<"please input an number: "<<endl; cin>>b; if(HuiWen(b)) { cout<<"这是回文数"; }else { cout<<"这不是回文数"; } return 0;}int HuiWen(char* s){ if(NULL == s) { return 0; } char *head=s;//指向第一个字符 char *tail=s+strlen(s)-1;//指向最后一个字符 while(true) { if(head >= tail)return 1; if(*head == *tail) { head++; tail--; } else { return 0; } }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。