用C++判断字符串回文
时间: 2023-10-16 07:09:17 浏览: 207
以下是用C语言编写的判断字符串是否回文的代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int len, i, flag = 1;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
for(i = 0; i < len / 2; i++)
{
if(str[i] != str[len - i - 1])
{
flag = 0;
break;
}
}
if(flag == 1)
printf("%s是回文字符串\n", str);
else
printf("%s不是回文字符串\n", str);
return 0;
}
```
运行结果:
```
请输入字符串:racecar
racecar是回文字符串
```
相关问题
利用栈判断字符串回文c++
可以利用栈来判断一个字符串是否为回文。具体的实现思路如下:
1. 首先定义一个栈,用来存储字符串中的字符。
2. 遍历字符串中的每个字符,将其依次压入栈中。
3. 再次遍历字符串中的每个字符,将其与栈顶字符进行比较。
4. 如果发现有字符与栈顶字符不相同,则说明该字符串不是回文。
5. 如果所有字符都与栈顶字符相同,则说明该字符串是回文。
具体的C++代码如下:
```
#include <iostream>
#include <stack>
#include <string>
using namespace std;
bool is_palindrome(string str) {
stack<char> s;
int len = str.length();
for (int i = 0; i < len; i++) {
s.push(str[i]);
}
for (int i = 0; i < len; i++) {
if (s.top() != str[i]) {
return false;
}
s.pop();
}
return true;
}
int main() {
string str;
cout << "请输入一个字符串:";
cin >> str;
if (is_palindrome(str)) {
cout << "该字符串是回文" << endl;
} else {
cout << "该字符串不是回文" << endl;
}
return 0;
}
```
c++判断字符串是否回文
以下是C++实现判断字符串是否回文的代码示例:
```c++
#include <iostream>
#include <stack>
#include <string>
#include <algorithm>
using namespace std;
bool isPalindrome(string s) {
stack<char> st;
int len = s.length();
for (int i = 0; i < len; i++) {
if (isalnum(s[i])) {
st.push(tolower(s[i]));
}
}
for (int i = 0; i < len; i++) {
if (isalnum(s[i])) {
if (tolower(s[i]) != st.top()) {
return false;
}
st.pop();
}
}
return true;
}
int main() {
string s = "A man, a plan, a canal: Panama";
if (isPalindrome(s)) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
阅读全文