问题描述:
编写一个程序,输入一串字符串,以回车结束,判断该字符串是否是回文串,如“abcddcba”是回文串,即正读反读相同的串
代码展示:
1 #include<stdio.h>
2 #include<string.h>
3 int isHuiWen(char str[], int n);
4 int main(){
5 char str[100];
6 int len,result;
7 printf("请输入字符串:");
8 scanf("%s",&str);
9 len = strlen(str);
10 result = isHuiWen(str,len);
11 if(result == 1){
12 printf("该字符串是回文序列");
13 }else{
14 printf("该字符串不是回文序列");
15 }
16 return 0;
17 }
18 int isHuiWen(char str[], int n){
19 int result;
20 int i=0,j=n-1;
21
22 while((str[i]==str[j]) && (i<=n/2) && (j>=n/2)){
23 i++;j--;
24 }
25 if((i-2) == j || (i-1)== j){ //奇数个字符和偶数个字符的两种情况
26 return 1;
27 }else{
28 return 0;
29 }
30 }
运行截图: