判断一个字符串是否为回文字符串vs中用c语言编写
时间: 2024-12-20 18:21:36 浏览: 5
在C语言中判断一个字符串是否为回文可以采用以下几种方法:
1. **逐字符比较法**[^1]:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int len = strlen(str);
for (int i = 0; i < len / 2; ++i) {
if (str[i] != str[len - i - 1]) {
return 0;
}
}
return 1;
}
int main() {
char str[] = "madam";
if (isPalindrome(str)) {
printf("%s is a palindrome.\n", str);
} else {
printf("%s is not a palindrome.\n", str);
}
return 0;
}
```
这段代码通过比较字符串的第一个字符和最后一个字符,第二个字符和倒数第二个字符,以此类推,如果发现有不匹配的,则返回`false`。
2. **双指针法**:
```c
#include <stdbool.h>
#include <string.h>
bool isPalindrome(char str[]) {
int left = 0;
int right = strlen(str) - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
left++;
right--;
}
return true;
}
```
这里定义两个指针,一个从前往后移动(left),一个从后往前移动(right)。只要两个指针指向的字符相同,就继续移动,直到它们相遇或交错,没有找到不匹配的字符则为回文。
阅读全文