首页 > 代码库 > 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;        }    }}