回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。用c语言来编写
时间: 2024-10-22 08:05:50 浏览: 25
回文数是指正读和反读都相同的数.docx
判断一个字符串是否为回文可以使用双指针法,从字符串的两端开始比较字符。以下是C语言的一个简单示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
int isPalindrome(char str[], int start, int end);
int main() {
char input[100];
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 读取输入并去掉换行符
input[strcspn(input, "\n")] = '\0'; // 去掉换行
if (isPalindrome(input, 0, strlen(input) - 1)) {
printf("%s 是回文\n", input);
} else {
printf("%s 不是回文\n", input);
}
return 0;
}
// 判断字符串是否为回文
int isPalindrome(char str[], int start, int end) {
while (start < end) { // 双指针相遇结束循环
if (str[start] != str[end]) {
return 0; // 如果任意一对对应的字符不同,则不是回文
}
start++;
end--;
}
return 1; // 所有字符都匹配,说明是回文
}
```
这个程序首先获取用户的输入,然后通过`isPalindrome`函数检查字符串是否满足回文条件。如果函数返回1,表示该字符串是回文。
阅读全文