首先我们要知道在C语言中strcmp函数的具体用法, strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。
把所有的字符串保存在一个char*类型的数组中,传到冒泡排序算法中去,其实就算是做完了,
#include <stdio.h>
#include <string.h>
int zf(char **a)
{
for(int q=0;q<9;q++)
{
for(int p=0;p<9-q;p++)
{
if(strcmp(a[p],a[p+1])>0)
{
char *temp=a[p];
a[p]=a[p+1];
a[p+1]=a[p];
}
}
}
return 0;
}
int main(int argc, char *argv[])
{
char*arr[10]={"asd","azx","awe","adf","afr","afg","ahj","aty","ahj","afh"};
printf("排序前的字符:");
for(int i=0;i<10;i++)
printf("%s ",arr[i]);
puts(" ");
zf(arr);
printf("排序后的字符:");
for(int i=0;i<10;i++)
printf("%s ",arr[i]);
puts(" ");
return 0;
}