如何在C语言中定义并实现一个函数来检查输入的字符串是否是回文串?
时间: 2024-12-24 13:35:43 浏览: 2
在C语言中,你可以通过定义一个函数来检查一个字符串是否是回文串,即正读和反读都相同的字符串。这里是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
int isPalindrome(char str[]);
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 从用户输入获取字符串
input[strcspn(input, "\n")] = '\0'; // 移除fgets添加的换行符
if (isPalindrome(input)) {
printf("%s is a palindrome.\n", input);
} else {
printf("%s is not a palindrome.\n", input);
}
return 0;
}
// 实现isPalindrome函数
int isPalindrome(char str[]) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) { // 当start小于end时继续比较
if (str[start] != str[end]) {
return 0; // 如果字符不匹配,不是回文,返回0
}
start++;
end--;
}
return 1; // 所有字符都匹配,返回1表示是回文
}
```
在这个代码中,`isPalindrome`函数接收一个字符数组作为参数,通过两个指针`start`和`end`分别指向字符串的首尾,然后逐个比较字符是否相等。如果发现不相等的字符,则立即返回0;当所有字符都比较过且都匹配时,说明字符串是回文,返回1。
阅读全文