判斷回文字符串的方法是首尾兩個字符逐個比較,依次向中間移動,直到兩個指針相遇或者左指針大于右指針。如果在比較過程中發現兩個字符不相等,則該字符串不是回文字符串。以下是用C語言編寫的判斷回文字符串的函數:
#include <stdio.h>
#include <string.h>
int isPalindrome(char *str) {
int len = strlen(str);
int left = 0;
int right = len - 1;
while (left < right) {
if (str[left] != str[right]) {
return 0;
}
left++;
right--;
}
return 1;
}
int main() {
char str[100];
printf("Enter a string: ");
scanf("%s", str);
if (isPalindrome(str)) {
printf("The entered string is a palindrome.\n");
} else {
printf("The entered string is not a palindrome.\n");
}
return 0;
}
在上述代碼中,isPalindrome
函數用于判斷輸入的字符串是否是回文字符串。首先獲取字符串的長度,然后使用兩個指針left
和right
分別指向字符串的首尾。在循環中,如果兩個指針指向的字符不相等,則返回0表示不是回文字符串。如果兩個指針相遇或者left
大于right
,則返回1表示是回文字符串。