C++/C 回文字符串的实例详解
本文主要介绍了 C++/C 回文字符串的实例详解,通过实例代码,讲解了如何判断输入的字符串是否为回文字符串。
什么是回文字符串?
回文字符串是指正反读都相同的字符串。例如,字符串 "abcba" 是一个回文字符串,因为它正反读都相同。
C 版回文字符串实例
下面是一个使用 C 语言编写的回文字符串实例:
```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 型数组 he[] 中。当用户输入回车时,循环结束。然后,程序使用两个索引变量 i 和 n-1-i 来比较字符串的前半部分和后半部分,如果发现不相同的字符,就输出 "no",否则输出 "yes"。
C++ 版回文字符串实例
下面是一个使用 C++ 语言编写的回文字符串实例:
```c
#include <iostream>
using namespace std;
int ishuiwen(char *p){
int len=strlen(p);
int flag=1;
for(int i=0;i<len/2;++i){
if(p[i]!=p[len-i-1]){
flag=0;
break;
}
}
return flag;
}
int main(){
char p[100];
while(gets(p)){
cout<<ishuiwen(p)<<endl;
}
cout<<endl;
return 0;
}
```
这个实例使用了 strlen() 函数来获取字符串的长度,并使用了一个循环来比较字符串的前半部分和后半部分。如果发现不相同的字符,就将 flag 变量设置为 0,否则将其设置为 1。程序输出判断结果。
总结
本文通过两个实例,讲解了如何使用 C 和 C++ 语言来判断输入的字符串是否为回文字符串。这些实例可以帮助读者更好地理解回文字符串的概念和实现方法。