编写一个函数int isHuiwen(char *str),功能为判断str字符串是否是回文,是返回1,否则返回0。并在main函数中调用此函数,输出结果。(要求用指针)
时间: 2025-01-25 21:12:01 浏览: 56
为了编写这个函数`isHuiwen`,我们需要检查输入字符串`s`从头到尾以及从尾到头字符是否相等。这里是一个简单的C语言实现,使用指针遍历字符串:
```c
#include <stdio.h>
#include <stdbool.h>
// 函数声明,接受指向char数组的指针
bool isHuiwen(const char* str) {
const char* start = str;
const char* end = str + strlen(str) - 1; // 计算字符串长度
while (start < end) { // 当开始指针小于结束指针时继续比较
if (*start != *end) { // 如果当前字符不匹配
return false; // 返回false表示不是回文
}
start++; // 移动开始指针
end--; // 移动结束指针
}
return true; // 如果所有字符都匹配,则返回true,表示是回文
}
int main() {
char str[] = "上海自来水来自海上";
int result = isHuiwen(str);
printf("%s是回文吗?%d\n", str, result); // 输出判断结果
char anotherStr[] = "hello";
result = isHuiwen(anotherStr);
printf("%s是回文吗?%d\n", anotherStr, result); // 输出另一个示例
return 0;
}
```
在这个程序中,`isHuiwen`函数接收一个指向常量字符数组的指针,避免修改原始字符串。然后通过两个指针同时从两端向中间移动并比较字符,如果发现不相等则立即返回false,否则到达中心位置后返回true。
在`main`函数中,我们创建了两个字符串分别用于测试,一个是回文字符串"上海自来水来自海上",另一个是非回文字符串"hello",并打印出相应的判断结果。
阅读全文
相关推荐


















