0044 编写一个程序,输入一串字符串,以回车结束,判断该字符串是否是回文串,如“abcddcba”是回文串,即正读反读相同的串
问题描述:
编写一个程序,输入一串字符串,以回车结束,判断该字符串是否是回文串,如“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 }
运行截图: