溫馨提示×

c語言判斷字符串是不是回文

小億
58
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函數(shù)獲取字符串的長度,然后使用兩個指針startend分別指向字符串的開頭和末尾。在一個while循環(huán)中,不斷比較指針指向的字符是否相同,如果發(fā)現(xiàn)不同的字符,則返回0表示不是回文;如果兩個指針相遇,則表示整個字符串都比較完畢,返回1表示是回文。最后在main函數(shù)中調(diào)用isPalindrome函數(shù)進行判斷,并輸出結(jié)果。

0