判断字符串是否是回文的方法可以使用双指针的思想,一个指针指向字符串的开头,一个指针指向字符串的末尾,然后逐步比较两个指针指向的字符是否相同,直到两个指针相遇或者找到不相同的字符。
下面是一个示例代码:
#include#include 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
函数获取字符串的长度,然后使用两个指针start
和end
分别指向字符串的开头和末尾。在一个while
循环中,不断比较指针指向的字符是否相同,如果发现不同的字符,则返回0表示不是回文;如果两个指针相遇,则表示整个字符串都比较完毕,返回1表示是回文。最后在main
函数中调用isPalindrome
函数进行判断,并输出结果。