C语言中,多个字符串排序方法有两种
1,字符二维数组排序
void sort1(char (*arr)[20]){
int i,j;
char *temp;
//冒泡排序
for(i=0;i<4;i++){
for(j=0;j<4-i;j++){
if(strcmp(arr[j],arr[j+1])>0){
strcpy(temp,arr[j+1]);
strcpy(arr[j+1],arr[j]);
strcpy(arr[j],temp);
}
}
}
}
#include <stdio.h>
#include <string.h>
int main(){
//二维数组排序
int i;
char arr[5][20];
for(i=0;i<5;i++){
scanf("%s",arr[i]);
}
sort1(arr);
for(i=0;i<5;i++){
printf("%s\n",arr[i]);
}
return 0;
}
2,指针数组排序
void sort2(char **arr){
int i,j,k;
char *temp;
//选择排序
for(i=0;i<4;i++){
k=i;
for(j=i+1;j<5;j++){
if(strcmp(arr[k],arr[j])>0){
k=j;
}
}
if(k!=i){
temp=arr[k];
arr[k]=arr[i];
arr[i]=temp;
}
}
}
#include <stdio.h>
#include <string.h>
int main(){
int i;
//指针数组排序
char *arr[5];
for(i=0;i<5;i++){
//为指针申请内存空间,也可以使用二维数组代替
arr[i]=(char *)malloc(20*sizeof(char));
scanf("%s",arr[i]);
}
sort2(arr);
for(i=0;i<5;i++){
printf("%s\n",arr[i]);
}
return 0;
}
版权声明:本文为weixin_42199699原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。