请编写一个C语言程序,要求实现排序,例如:输入“eth12,eth3,eth1,eth5,eth8”,输出“eth1,eth3,eth5,eth8,eth12”。
时间: 2023-12-02 21:04:57 浏览: 96
c语言实现排序算法
5星 · 资源好评率100%
以下是一个简单的C语言程序,可以实现对输入字符串中的以"eth"开头的数字进行排序。
```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;
// 提取数字部分并转换为整数进行比较
int num1 = atoi(str1 + 3);
int num2 = atoi(str2 + 3);
return num1 - num2;
}
int main() {
char input[100];
printf("请输入以逗号分隔的字符串:");
fgets(input, sizeof(input), stdin);
// 分割字符串
char *token = strtok(input, ",");
char *strings[100];
int count = 0;
while (token != NULL) {
strings[count++] = token;
token = strtok(NULL, ",");
}
// 对以"eth"开头的数字部分进行排序
qsort(strings, count, sizeof(char *), compare);
// 输出排序后的结果
printf("排序后的结果:");
for (int i = 0; i < count; i++) {
printf("%s", strings[i]);
if (i != count - 1) {
printf(",");
}
}
printf("\n");
return 0;
}
```
使用这个程序,你可以输入类似于"eth12,eth3,eth1,eth5,eth8"的字符串,然后它会输出排序后的结果:"eth1,eth3,eth5,eth8,eth12"。
阅读全文