C,C++回文字符串判断(字符串指针的用法)

功能:输入一个字符串,判断是否为回文。

主要锻炼指针的用法。

1.C版

#include<stdio.h>

int main()
{
    char he[100];
    char a;
    int i=0,flag=1;
    while((a=getchar())!='\n')
    {
        he[i]=a;
        i++;
    }
    int n=i;
    for(i=0;i<n/2;i++)
    {
        printf("%c\t%c\n",he[i],he[n-1-i]);
        if(he[i]!=he[n-1-i])
        {
            printf("no");break;
        }
    }
    if(flag==1)
    {
        printf("yes");
    }
    return 0;
}

getchar()函数依次获取一个输入,并赋给char型变量a,再通过a赋给char型数组he[]。

当输入“\n”即回车时,跳出循环。

 

2.C++版

#include<iostream>
#include<string.h>
using namespace std;

int main(void)
{
    char *p="abcba";
    int n=strlen(p);
    bool flag=1;
    int i;
    for(i=0;i<n/2;i++)
    {
        cout<<p[i]<<"\t"<<p[n-1-i]<<endl;
        if(p[i]!=p[n-1-i])
        {
            flag=0;
            cout<<"no"<<endl;break;
        }
    }
    if(flag==1)
         cout<<"yes"<<endl;
    return 0;
}

strlen()取长度


3.C函数调用版

#include<stdio.h>
#include<string.h>

int pp(char *p)
{
    int n=strlen(p),i;
    //printf("%d",n);
    if(p==NULL)return -1;
    for(i=0;i<n/2;i++)
    {
       // printf("%c\t%c\n",p[i],p[n-1-i]);
        if(p[i]!=p[n-1-i])
        {
            return 0;
        }
    }
    return 1;
}

int main()
{
    char *p="abcba";
    int a=pp(p);
    printf("%d",a);
}

pp()为一个int型函数,故返回一个int型的值,在主函数中通过声明一个int a来接收。

 

 

posted @ 2013-07-20 18:10  tengzi  阅读(13027)  评论(1编辑  收藏  举报