判斷一個字符串是否為回文串的方法可以使用兩個指針分別從字符串的開頭和結尾向中間移動,每次比較指針位置上的字符是否相等,如果相等則繼續移動指針,直到兩個指針相遇或者出現不相等的情況。
具體步驟如下:
示例代碼如下:
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
bool isPalindrome(char *str) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) {
if (str[start] != str[end]) {
return false;
}
start++;
end--;
}
return true;
}
int main() {
char str[] = "abcdeedcba";
if (isPalindrome(str)) {
printf("The string is a palindrome.\n");
} else {
printf("The string is not a palindrome.\n");
}
return 0;
}
上述代碼中,函數isPalindrome
用來判斷字符串是否為回文串。首先定義兩個指針start
和end
,分別指向字符串的開頭和結尾。然后使用循環判斷兩個指針指向的字符是否相等,如果相等則繼續移動指針,直到兩個指針相遇或者出現不相等的情況。如果兩個指針相遇,則說明字符串是回文串,返回true
;否則,字符串不是回文串,返回false
。在main
函數中,我們給出了一個字符串例子,通過調用isPalindrome
函數判斷該字符串是否為回文串,并輸出相應的結果。