C语言任务描述 本关任务:编写函数,判断一个字符串是否是回文。在主函数中输入一个字符串,调用自定义函数,输出结果。所谓回文是指顺读和倒读都一样的字符串。如“XZYKYZX”是回文。 测试说明 平台会对你编写的代码进行测试: 测试输入:abcba 预期输出:是回文!用二维指针来完成这个问题
时间: 2024-03-23 08:36:05 浏览: 128
以下是使用二维指针来完成这个问题的C语言代码:
```c
#include <stdio.h>
#include <string.h>
int is_palindrome(char **str) {
int len = strlen(*str);
for (int i = 0; i < len / 2; i++) {
if ((*str)[i] != (*str)[len - i - 1]) {
return 0;
}
}
return 1;
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
char *ptr = str;
if (is_palindrome(&ptr)) {
printf("是回文!\n");
} else {
printf("不是回文!\n");
}
return 0;
}
```
在上面的代码中,我们定义了一个`is_palindrome`函数来判断给定的字符串是否为回文。该函数使用一个二维指针来接收指向字符串的指针,并使用`strlen`函数来获取字符串的长度。然后,它循环遍历字符串的前一半,并比较前半部分和后半部分的字符是否相等。如果任何字符不相等,则返回0表示它不是回文,否则返回1表示它是回文。
在主函数中,我们先输入一个字符串并将其存储在`str`数组中,然后将指向该数组的指针`ptr`传递给`is_palindrome`函数,使用`&ptr`来传递二维指针。最后,根据函数返回的结果输出相应的信息。
阅读全文