您好,欢迎来到花图问答。
搜索
您的当前位置:首页C,C++回文字符串判断(字符串指针的用法)

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来接收。

 

 

转载于:https://www.cnblogs.com/anwcq/p/C_suanfa_huiwen.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuowenda.com 版权所有 湘ICP备2023022495号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务