Palindromes //简单字符串

来源:互联网 发布:网络机顶盒还原出厂 编辑:程序博客网 时间:2024/06/04 18:25
#include <stdio.h>#include <string.h>int main(){    int i, mid, len;    char stdc[50]= {'A',0,0,0,'3',0,0,'H','I','L',0,'J','M',0,'O',0,0,0,'2','T','U','V','W','X','Y','5','1','S','E',0,'Z',0,0,'8',0};<span style="white-space:pre"></span>    char ch[30];    bool isr, ism;    while( scanf("%s", ch)!=-1 )    {        isr = ism = true;len = strlen(ch);        mid = len / 2 + (len%2==0? 0:1);        for(i=0; i<mid; i++)        {            if(ch[i] != ch[len-i-1])            {                isr = false;                if(ch[i]>='A' && ch[i]<='Z')                {                    if(ch[len-i-1] != stdc[ch[i]-'A'] )                        ism = false;                }                else if(ch[i]>='0' && ch[i]<='9')                {                    if(ch[len-i-1] != stdc[ch[i]-'0'+25] )                        ism = false;                }            }else{if(ch[i]>='A' && ch[i]<='Z')                {                    if(ch[len-i-1] != stdc[ch[i]-'A'] )                        ism = false;                }                else if(ch[i]>='0' && ch[i]<='9')                {                    if(ch[len-i-1] != stdc[ch[i]-'0'+25] )                        ism = false;                }}if(!isr && !ism)break;        }    printf("%s", ch);    if(isr && ism)        printf(" -- is a mirrored palindrome.\n");    else if(isr)        printf(" -- is a regular palindrome.\n");    else if(ism)        printf(" -- is a mirrored string.\n");    else        printf(" -- is not a palindrome.\n");printf("\n");    }    return 0;}

0 0
原创粉丝点击