下面是一个基于C语言的回文字符串排序算法示例:
#include#include // 判断是否为回文字符串 int isPalindrome(char *str) { int len = strlen(str); for (int i = 0; i < len/2; i++) { if (str[i] != str[len-1-i]) { return 0; } } return 1; } // 字符串比较函数,用于排序 int compare(const void *a, const void *b) { return strcmp(*(char **)a, *(char **)b); } int main() { char *strings[] = {"level", "racecar", "hello", "world", "radar", "madam"}; int n = sizeof(strings) / sizeof(strings[0]); // 排序 qsort(strings, n, sizeof(strings[0]), compare); // 打印排序后的回文字符串 printf("Sorted palindrome strings:\n"); for (int i = 0; i < n; i++) { if (isPalindrome(strings[i])) { printf("%s\n", strings[i]); } } return 0; }
在这个示例中,我们定义了一个isPalindrome
函数用于判断一个字符串是否为回文字符串,然后使用qsort
函数对字符串数组进行排序,并且使用compare
函数作为比较函数。最后打印出排序后的回文字符串。您可以根据需要修改字符串数组或者排序方式。