#include <stddef.h>
#include <stdio.h>
int compareString(char *s1, char *s2)
{
while (*s1 != '\0' && *s2 != '\0')
if (*s1 == *s2)
{
s1++;
s2++;
}
else
{
return *s1 - *s2;
}
return 0;
}
void sortString(char *s[], int n)
{
int i, j;
char *t;
for (i = 0; i < n; i++)
{
for (j = i; j < n; j++)
if (compareString(s[i], s[j]) > 0)
{
t = s[i];
s[i] = s[j];
s[j] = t;
}
}
}
void traversal(char *a[], int n, const char *title)
{
int i;
printf("\n%s\n", title);
for (i = 0; i < n; i++)
printf("%s ", a[i]);
printf("\n");
}
int main()
{
char *a[] = {"Shanghai", "Henan", "Hubei", "Hebei",
"Liaoning", "Jiangsu", "Beijing", "Shandong", NULL};
int i, j;
int length = 8;
traversal(a, length, "排序前:");
sortString(a, length);
traversal(a, length, "排序后:");
}
备份地址: 【字符串排序】