判断输入的一串字符是否为“回文”,所谓“回文”顺读和倒读都一样的字符串,如“xyzyx”和“XYZYX”都是回文。试编写相应程序c语言指针
时间: 2024-01-22 21:02:43 浏览: 15
以下是使用C语言指针判断输入的一串字符是否为“回文”的程序:
```c
#include <stdio.h>
#include <string.h>
int huiwen(char *s);
int main() {
char arr[100];
printf("请输入您要判断的字符串:\n");
gets(arr);
if (huiwen(arr)) {
printf("您输入的字符串是回文\n");
} else {
printf("您输入的字符串不是回文\n");
}
return 0;
}
int huiwen(char *s) {
int len = strlen(s);
char *p = s;
char *q = s + len - 1;
while (p < q) {
if (*p != *q) {
return 0;
}
p++;
q--;
}
return 1;
}
```
相关问题
判断回文,判断输入的一串字符串是否为“回文”。所谓回文是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzyx”都是回文。试编写相应程序。
思路:将字符串反转,然后与原字符串比较是否相等。如果相等,则为回文。
代码如下:
```python
s = input("请输入字符串:") # 输入字符串
s_reverse = s[::-1] # 反转字符串
if s == s_reverse: # 判断是否相等
print("是回文")
else:
print("不是回文")
```
示例输出:
```
请输入字符串:XYZYX
是回文
```
注意:在 Python 中,字符串可以使用索引反转,即 `s[::-1]` 表示从后往前每个字符都取一次,相当于字符串反转。
判断输入的一串字符是否为“回文”,所谓“回文”顺读和倒读都一样的字符串,如“xyzyx”和“xyzyx”都是回文。试编写相应程序。
可以使用双指针法来判断一个字符串是否为回文。具体步骤如下:
1. 定义两个指针,一个指向字符串的开头,一个指向字符串的结尾。
2. 每次比较两个指针所指向的字符是否相同,如果不同,则不是回文字符串,直接返回 false。
3. 如果相同,则将两个指针向中间移动,继续比较。
4. 当两个指针相遇时,说明该字符串是回文字符串,返回 true。
下面是示例代码:
```
#include <iostream>
#include <string>
using namespace std;
bool isPalindrome(string s) {
int left = 0, right = s.length() - 1;
while (left < right) {
if (s[left] != s[right]) {
return false;
}
left++;
right--;
}
return true;
}
int main() {
string s;
cout << "请输入一个字符串:";
cin >> s;
if (isPalindrome(s)) {
cout << "是回文字符串" << endl;
} else {
cout << "不是回文字符串" << endl;
}
return 0;
}
```