功能:輸入一個字符串,判斷是否為回文。
主要鍛煉指針的用法。
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來接收。