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