回文是指正读反读均相同的字符序列,如“abba”、“abdba”均是回文,用C语言设计一个算法,判定给定的字符串是否为回文。
时间: 2024-10-24 17:09:00 浏览: 31
要判断一个字符串是否是回文,可以使用双指针技术,即从字符串的两端开始向中间遍历,比较对应位置的字符是否相等。如果存在不相等的字符,则说明该字符串不是回文;若遍历完整个字符串都未发现不匹配,那么它是回文。
下面是一个简单的C语言函数示例,用于判断输入的字符串是否为回文:
```c
#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 test[] = "aba";
if (isPalindrome(test)) {
printf("%s is a palindrome.\n", test);
} else {
printf("%s is not a palindrome.\n", test);
}
return 0;
}
```
这个函数接受一个字符数组作为输入,通过逐个比较首尾字符直到相遇点,检查它们是否相等。如果`start`和`end`指针相遇并且所有字符都匹配,那么返回`true`,表示是回文;反之,返回`false`。
阅读全文