c简单排序字符串

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void strsrt(char *str[], int num)
{
char *temp;
int top, seek;
for (top = 0; top < num - 1; top++)
{
for (seek = top + 1; seek < num; seek++)
{
if (strcmp(str[top], str[seek]) > 0)
{
//switch the value
temp = str[seek];
str[seek] = str[top];
str[top] = temp;
}
}
}
}
int main(void)
{
char *str[] = {
"test",
"hello",
"world",
"abc",
"hello two"
};
strsrt(str, 5);
  
int i = 0;
while (i < 5)
printf("%s\n", str[i++]);
return 0;
}

以上主要使用了strcmp()函数,实际上是排序了字符串指针而不是字符串,优点是保留了原始字符串的顺序

使用了最简单的算法,效率不是太高呵……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用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`函数中的比较规则。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值