判断输入的一串字符是否为“回文”,所谓“回文”顺读和倒读都一样的字符串,如“xyzyx”和“XYZYX”都是回文。试编写相应程序c语言指针
时间: 2024-01-22 19:02:43 浏览: 91
以下是使用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代码:
```python
def is_palindrome(s):
s = s.lower() # 将字符串转为小写,不区分大小写
left = 0
right = len(s) - 1
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
s = input("请输入一个字符串:")
if is_palindrome(s):
print("{} 是回文字符串。".format(s))
else:
print("{} 不是回文字符串。".format(s))
```
首先定义一个函数 `is_palindrome`,以一个字符串作为参数,返回一个布尔值表示该字符串是否为回文。函数中首先将字符串转为小写,然后用双指针法从两端向中间扫描,如果左右两个字符不相同则返回 False,否则继续扫描。扫描完成后没有返回 False,则说明该字符串是回文,返回 True。
然后读入一个字符串,调用 `is_palindrome` 判断是否为回文,并输出相应的结果。
判断回文:判断输入的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。编写子函数进行判断。
可以使用双指针的方法来判断一个字符串是否为回文。
具体思路如下:
1. 定义两个指针,一个指向字符串的开头,一个指向字符串的结尾。
2. 比较两个指针所指向的字符是否相同,如果相同则继续比较下一个字符,否则返回false。
3. 当左指针大于等于右指针时,说明已经比较完整个字符串,返回true。
下面是Python的实现代码:
```python
def is_palindrome(s):
s = s.lower() # 全部转换为小写字母,便于比较
left, right = 0, len(s) - 1 # 定义左右指针
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
```
其中,`s.lower()`将字符串中的所有字母转换为小写字母,这样就可以忽略大小写的差异了。
阅读全文