利用C语言和C加加语言设计一个判定字符序列是否为回文的算法
时间: 2024-12-08 15:16:40 浏览: 12
在C语言中,可以使用标准库函数以及基本循环结构来设计一个判断字符序列是否为回文的算法。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
int isPalindrome(char str[], int start, int end);
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin); // 注意这里需要去掉末尾的换行符
str[strlen(str) - 1] = '\0'; // 去掉fgets带来的换行符
if (isPalindrome(str, 0, strlen(str) - 1)) {
printf("%s 是回文\n", str);
} else {
printf("%s 不是回文\n", str);
}
return 0;
}
// 回文判断函数
int isPalindrome(char str[], int start, int end) {
while (start < end) {
if (str[start] != str[end]) {
return 0; // 如果有非相等字符,则不是回文
}
start++;
end--;
}
return 1; // 如果所有字符都匹配,返回1表示是回文
}
```
而在C++环境下,你可以使用迭代器和反转技术简化代码:
```cpp
#include <iostream>
#include <string>
bool isPalindrome(std::string str) {
std::string reversedStr = str;
reversedStr.reverse();
return str == reversedStr;
}
int main() {
std::string input;
std::cout << "请输入一个字符串:";
getline(std::cin, input);
if (isPalindrome(input)) {
std::cout << input << " 是回文\n";
} else {
std::cout << input << " 不是回文\n";
}
return 0;
}
```
阅读全文