从键盘任意输入一个字符串,检查该字符串是否是回文字符串。若是,则输出该字符串,若不是,则输出 error 。判断是否是回文字符串部分要求用函数来实现。(要求用指针完成)
时间: 2024-03-12 18:45:41 浏览: 66
好的,您的问题是如何判断一个字符串是否是回文字符串,我理解了。这里是使用指针来实现的一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int is_palindrome(char *str);
int main()
{
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
if (is_palindrome(str)) {
printf("%s\n", str);
} else {
printf("error\n");
}
return 0;
}
int is_palindrome(char *str)
{
int len = strlen(str);
char *p1 = str;
char *p2 = str + len - 1;
while (p1 < p2) {
if (*p1 != *p2) {
return 0;
}
p1++;
p2--;
}
return 1;
}
```
使用 `scanf` 函数从键盘输入一个字符串,然后调用 `is_palindrome` 函数来判断该字符串是否是回文字符串。`is_palindrome` 函数使用两个指针分别指向字符串的头和尾,然后不断向中间靠拢,比较两个指针所指向的字符是否相等,如果不相等则返回 0,否则返回 1。
这里需要注意的是,输入的字符串最好不要超过 100 个字符,否则可能会导致数组溢出。如果要处理任意长度的字符串,可以使用动态内存分配函数 `malloc` 来分配足够的内存空间。
阅读全文