编辑代码

#include <stdio.h>
#include <stdbool.h>
#include <string.h>


bool pStr1(char str[],int front,int rear){
    if(front>=rear){
        return true;
    }
    if(str[front] != str[rear]){
        return false;
    }
    return pStr1(str,front+1,rear-1);
}

bool pStr2(char str[],int length){
    int front,rear;
    front=0; rear=length-1;
    while(front<rear){
        if(str[front] != str[rear]) return false;
        front ++;
        rear --;
    }
    return true;
}

int main () {
    char str1[]="abcdcba";
    char str2[]="abcddcca";
    if(pStr1(str1,0,strlen(str1)-1)){
        printf("这是一个回文\n");
    }
    else{
        printf("这不是回文\n");
    }

    if(pStr2(str1,strlen(str1))){
        printf("这是一个回文\n");
    }
    else{
        printf("这不是回文\n");
    }
    printf("-------------\n");
    
    if(pStr1(str2,0,strlen(str2)-1)){
        printf("这是一个回文\n");
    }
    else{
        printf("这不是回文\n");
    }

    if(pStr2(str2,strlen(str2))){
        printf("这是一个回文\n");
    }
    else{
        printf("这不是回文\n");
    }

    return 0;
}