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]
- 用C++找出奶牛“中间”产量的方法(字节豆包 | 457点数解答 | 2026-02-25 12:30:30)22
- 使用C++解决农夫约翰寻找“中间”奶牛产奶量问题(字节豆包 | 199点数解答 | 2026-02-27 19:35:09)21
- C++实现读取数字并输出最小值的代码及解释(字节豆包 | 113点数解答 | 2026-03-20 19:32:56)17
- C++ 求解:最少操作次数让字符串无子串 “friend” (字节豆包 | 153点数解答 | 2024-08-17 16:29:54)484
- C++ 求解:最少操作次数让字符串不再含 “friend” 子串!(讯飞星火 | 260点数解答 | 2024-08-17 16:30:49)472
- Python 巧解:最少操作次数让字符串告别“friend”子串(字节豆包 | 139点数解答 | 2024-08-18 13:04:14)410
- 3414 数字游戏:Python 求解 8 位 01 字符串中 1 的个数 (字节豆包 | 106点数解答 | 2024-10-27 14:23:27)434
- 巧用字符添加,计算字符串中“our”最大数量及开发注意要点(DeepSeek | 376点数解答 | 2025-10-30 19:20:06)83
- C 语言实现:处理字符串生成最多 “our” 串,附代码及关键开发注意点 (DeepSeek | 257点数解答 | 2025-10-30 19:20:36)113
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)352
- C++实现奇数阶矩阵中间行特殊字符输出(DeepSeek | 261点数解答 | 2026-02-28 10:55:53)25
- Java技巧:用 indexOf 方法获取字符串中某子字符串所有出现位置( | 691点数解答 | 2023-12-28 19:49:03)320