酷代码 AI
菜单
服务商

C语言实现:判断字符串是否为回文并获取中间字符

```c #include <stdio.h> #include <string.h> #define MAXLENGTH 100 int isPalindrome(const char* str, char* pch); int main() { char str[MAXLENGTH], mid; scanf("%s", str); if (isPalindrome(str, &mid)) printf("是回文!中间字符是%c\n", mid); else printf("不是回文!中间字符是%c\n", mid); return 0; } int isPalindrome(const char* str, char* pch) { int len = strlen(str); *pch = str[len / 2]; int left = 0; int right = len - 1; while (left < right) { if (str[left] != str[right]) { return 0; } left++; right--; } return 1; } ``` 代码解释: 1. `isPalindrome` 函数: - 首先计算字符串的长度 `len`。 - 将字符串中间字符(如果中间是两个字符,则取靠左的那一个)存储到 `*pch` 中。 - 使用两个指针 `left` 和 `right` 分别指向字符串的首尾。 - 在 `left` 小于 `right` 的条件下,比较 `str[left]` 和 `str[right]`,如果不相等,说明不是回文,返回 0。 - 如果循环结束都没有发现不相等的情况,说明是回文,返回 1。 2. `main` 函数: - 读取用户输入的字符串。 - 调用 `isPalindrome` 函数进行判断,并根据返回值输出相应的结果。 ######[AI问答 | 426点数解答 | 2025-12-10 22:27:54]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]