点击上方链接开始答题
目录
一.题目描述
Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过代码解决。
Lily使用的图片使用字符"A"到"Z"、"a"到"z"、"0"到"9"表示。
数据范围:每组输入的字符串长度满足 1≤n≤1000
输入描述:
一行,一个字符串,字符串中的每个字符表示一张Lily使用的图片。
输出描述:
Lily的所有图片按照从小到大的顺序输出
示例1
输入:Ihave1nose2hands10fingers
输出:0112Iaadeeefghhinnnorsssv
二.题解:
该题中 我用到了qsort函数进行排列,简单而高效
qsort函数
用于排序,可用于整型,字符串,结构体等多种类型
函数原型
void qsort( void* base, //首元素地址
size_t num, //元素个数
size_t size //元素的大小
int (*compar)(const void*, const void*)); //函数指针 比较两个元素的函数
% 注意:比较两个元素的函数需要我们根据需求自己写
源代码:
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int compar_str(const void* e1,const void* e2){
return (strcmp((char*)e1,(char*)e2));
}
int main() {
char str[1000];
scanf("%s",str);
int sz=strlen(str);
qsort(str,sz,sizeof(str[0]),compar_str);
int i=0;
puts(str);
return 0;
}