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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM