功能:输入一个字符串,判断是否为回文。
主要锻炼指针的用法。
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来接收。