c语言编写函数判断一个字符串是否为回文运用指针函数并判断输入字符串是否为回文不使用bool
时间: 2024-12-19 20:20:32 浏览: 11
在C语言中,可以使用指针来判断一个字符串是否为回文。回文是指正读反读都一样的字符串,例如"madam"、"racecar"等。这里我们不使用布尔类型,而是通过比较字符来实现。下面是一个简单的函数示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void is_palindrome(char *str);
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 防止换行符
input[strcspn(input, "\n")] = '\0'; // 移除换行符
if (is_palindrome(input)) {
printf("%s is a palindrome.\n", input);
} else {
printf("%s is not a palindrome.\n", input);
}
return 0;
}
// 指针函数判断回文
void is_palindrome(char *str) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) { // 当两个指针指向的字符相等,继续向中间移动
if (str[start] != str[end]) {
return; // 如果不相等,直接返回,不是回文
}
start++;
end--;
}
printf("%s is a palindrome (using pointers)\n", str);
}
```
在这个例子中,`is_palindrome`函数接受一个字符串指针作为参数,通过两个指针分别从字符串的开始和结束位置向中间移动,并检查对应位置的字符是否相等。如果任何时候发现不相等,则立即返回非回文;当所有字符都匹配时,说明它是回文。
阅读全文