c语言找出字符串中回文字符串
时间: 2024-12-13 07:22:51 浏览: 16
在C语言中,找出字符串中的回文字符串通常涉及遍历字符串,同时比较字符对是否相等,不论它们处于字符串的正向还是反向位置。这里是一个简单的算法:
```c
#include <stdio.h>
#include <string.h>
// 判断字符串s是否是回文
int is_palindrome(char *s) {
int start = 0;
int end = strlen(s) - 1;
while (start < end) {
if (s[start] != s[end]) {
return 0; // 如果发现不是回文则返回0
}
start++;
end--;
}
return 1; // 如果整个字符串都检查过了,都是回文,则返回1
}
// 找出字符串数组中的所有回文字符串
void find_palindromes(char *str[], int n) {
for (int i = 0; i < n; i++) {
if (is_palindrome(str[i])) {
printf("%s is a palindrome.\n", str[i]);
}
}
}
int main() {
char str[][] = {"abc", "aba", "racecar", "hello"};
int n = sizeof(str) / sizeof(str[0]);
find_palindromes(str, n);
return 0;
}
```
在这个程序中,`is_palindrome`函数负责判断单个字符串是否是回文,而`find_palindromes`函数则遍历给定的字符串数组并打印出所有的回文字符串。
阅读全文