冒泡排序排序多个字符串
代码:
#include<stdio.h>
#include<string.h>
void compare_sort(char* a[], int sz)
{
int i;
int j;
char *tmp = NULL;
for (i = 0; i < sz-1; i++)
{
for (j = 0; j < sz - i - 1; j++)
{
if (strcmp(a[j],a[j + 1])>0) //strcmp函数见后面解释
{
tmp = a[j];
a[j] = a[j + 1]; //数组内容交换
a[j + 1] = tmp;
}
}
}
}
void show(char *a[],int sz)
{
int i;
for (i = 0; i < sz; i++)
{
printf("%s\n", a[i]);
}
}
int main()
{
char *arr[3] = { "how","are","you" };
int sz = sizeof(arr) / sizeof(arr[0]); //计算数组长度,这里数组长度为3
compare_sort(arr, sz);
show(arr, sz);
}
运行结果:
int strcmp( const char *string1, const char *string2 );
解释:输入两个字符串比较分别比较字符大小(即ASCII大小) ,当string1>string2时 返回1 ,当string1