C语言多个字符串排序

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;
}

 

  • 15
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用C语言中的字符串排序函数来给多个字符串排序。一个常用的函数是`qsort`,它可以根据自定义的比较函数对数组进行排序。 下面是一个示例代码,演示如何使用`qsort`对多个字符串进行排序: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> // 比较函数,用于指定字符串排序规则 int compare(const void *a, const void *b) { const char **str1 = (const char **)a; const char **str2 = (const char **)b; return strcmp(*str1, *str2); } int main() { char *strings[] = {"apple", "banana", "orange", "grape", "cherry"}; int numStrings = sizeof(strings) / sizeof(strings[0]); printf("排序前的字符串:\n"); for (int i = 0; i < numStrings; i++) { printf("%s\n", strings[i]); } qsort(strings, numStrings, sizeof(char *), compare); printf("排序后的字符串:\n"); for (int i = 0; i < numStrings; i++) { printf("%s\n", strings[i]); } return 0; } ``` 运行上述代码,你会得到如下输出: ``` 排序前的字符串: apple banana orange grape cherry 排序后的字符串: apple banana cherry grape orange ``` 在这个示例中,我们定义了一个字符串数组`strings`,并使用`qsort`函数对其进行排序。我们还定义了一个`compare`函数,用于定义字符串排序规则。在这个例子中,我们使用了`strcmp`函数来比较两个字符串大小。 请注意,这个示例是对字符串数组进行排序的简单示例。如果你有其他特定的排序需求,可以根据自己的需求修改`compare`函数中的比较规则。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值