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

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

1.C语言版

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

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

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

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]<<"	"<<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;

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	%c
",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来接收。

--------------------------------------------- 十年寒窗无人问 三更灯火五更鸣 ---------------------------------------

原文地址:https://www.cnblogs.com/AI-Algorithms/p/3356418.html