程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C,C++回文字符串判斷(字符串指針的用法),回文指針

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

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved