温馨提示×

c语言判断字符串是不是回文

小亿
51
2024-01-04 05:55:21
栏目: 编程语言

判断字符串是否是回文的方法可以使用双指针的思想,一个指针指向字符串的开头,一个指针指向字符串的末尾,然后逐步比较两个指针指向的字符是否相同,直到两个指针相遇或者找到不相同的字符。

下面是一个示例代码:

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

int isPalindrome(char* str) {
    int len = strlen(str);
    int start = 0;
    int end = len - 1;

    while (start < end) {
        if (str[start] != str[end]) {
            return 0;  // 不是回文
        }
        start++;
        end--;
    }

    return 1;  // 是回文
}

int main() {
    char str[100];
    printf("请输入一个字符串:");
    scanf("%s", str);

    if (isPalindrome(str)) {
        printf("是回文\n");
    } else {
        printf("不是回文\n");
    }

    return 0;
}

这段代码首先通过strlen函数获取字符串的长度,然后使用两个指针startend分别指向字符串的开头和末尾。在一个while循环中,不断比较指针指向的字符是否相同,如果发现不同的字符,则返回0表示不是回文;如果两个指针相遇,则表示整个字符串都比较完毕,返回1表示是回文。最后在main函数中调用isPalindrome函数进行判断,并输出结果。

0