写冒泡排序可以排序多个字符串

#include<stdio.h>
#include<string.h>
void bubble_sort(char (*arr)[6],int size)//二维数组的一维数组指针
{ 
  int i = 0;
  char brr[9];
  for(;i<size - 1;i++)
     {
      int j = 0;
      int flag = 0;
      for(;j<size - 1 -i;j++)
	     {
	      if(strcmp(arr[j],arr[j+1]) > 0 )
		   {
		  flag = 1; 
                  strcpy(brr,arr[j]);
		  strcpy(arr[j],arr[j+1]);
		  strcpy(arr[j+1],brr);
		  }
	  }
   if(0 == flag)
   break ;  
  }
}
int main()
{
	char arr[][6] = {
	"aaaaa",
	"ddddd",
	"eeeee",
	"ccccc",
	"bbbbb"
	};
	int size = sizeof(arr)/sizeof(arr[0]);
	int i = 0;
    bubble_sort(arr,size);
    for(;i<size;i++)
    printf("%s\n",arr[i]);
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`strcmp` 是 C 语言中的一个标准库函数,主要用于比较两个字符串是否相等。它在 `<string.h>` 头文件中定义,通常用于实现字符串排序操作的基础比较。`strcmp` 函数的工作原理是逐个字符地比较两个字符串,如果字符相同,则继续比较下一个;直到找到不相等的字符或其中一个字符串结束(到达空终止符 '\0')。 在排序多个字符串时,`strcmp` 通常用于作为 `qsort` 或其他类似排序算法(如快速排序冒泡排序等)的比较函数,以决定字符串的顺序。例如,在对一个字符串数组进行字母顺序排序时,可以这样使用: ```c #include <stdio.h> #include <string.h> void compare_strings(const void *a, const void *b) { const char *str1 = *(const char **)a; const char *str2 = *(const char **)b; int result = strcmp(str1, str2); if (result < 0) return -1; // str1 应该排在 str2 前面 else if (result > 0) return 1; // str1 应该排在 str2 后面 else return 0; // 如果两个字符串相等,保持不变 } int main() { char *strings[] = {"apple", "banana", "cherry", "date"}; int num_strings = sizeof(strings) / sizeof(strings); qsort(strings, num_strings, sizeof(char *), compare_strings); for (int i = 0; i < num_strings; i++) { printf("%s ", strings[i]); } printf("\n"); return 0; } ``` 在这个例子中,`compare_strings` 函数接收指向字符串指针的指针,并使用 `strcmp` 来确定它们的相对位置。`qsort` 函数会根据这个比较函数对数组进行排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值