在c++中用递归函数判断回文字符串
时间: 2024-10-25 09:09:50 浏览: 37
在C++中,你可以使用递归函数来判断一个字符串是否为回文。回文是指正读反读都一样的字符串,例如"level"、"radar"等。下面是一个简单的递归函数示例:
```cpp
#include <iostream>
#include <string>
bool isPalindrome(std::string str, int start = 0) {
// 递归的基本情况:空串或只有一个字符都是回文
if (start >= str.length() / 2)
return true;
// 比较首尾字符,如果相等则继续递归处理剩余部分,否则不是回文
if (str[start] != str[str.length() - 1])
return false;
// 继续检查下一个字符
return isPalindrome(str, start + 1);
}
int main() {
std::string input;
std::cout << "Enter a string to check for palindrome: ";
std::cin >> input;
if (isPalindrome(input))
std::cout << input << " is a palindrome.\n";
else
std::cout << input << " is not a palindrome.\n";
return 0;
}
```
在这个例子中,`isPalindrome` 函数接受一个字符串 `str` 和一个起始索引 `start`。当起始位置超过字符串长度的一半时,认为字符串是回文。然后逐个比较首尾字符,如果不匹配就返回 `false`,匹配则递归地检查剩下的部分。
阅读全文