任意输入一个字符串,将其中的字符按照ASCII码值从小到大重新排序

您所在的位置:网站首页 ascll码值从小到大排列顺 任意输入一个字符串,将其中的字符按照ASCII码值从小到大重新排序

任意输入一个字符串,将其中的字符按照ASCII码值从小到大重新排序

2023-08-22 12:13| 来源: 网络整理| 查看: 265

任意输入一个字符串,将其中的字符按照ASCII码值从小到大重新排序

例如:

给出:dbca

结果:abcd

这次使用非比较排序来对字符串进行重新排序

ASCII码的值为0~255,那么我们可以开辟一个大小为256的数组,用它来保存字符出现的次数,然后根据array的值为字符出现的次数,array的下标则为该字符的ASCII值,只要根据array的值和array的下标输出就好。

#include #include //记录字符出现的次数 void CharSort(int* array,char* str,int size) { int i = 0; for(i = 0; i < size; i++) { array[str[i]]++;//字符出现的次数 } } void Print(int* array, int size) { int i = 0; for(i = 0; i < 255; i++) { while(array[i]--) printf("%c",i); } printf("\n"); } int main() { int array1[255]={0}; char* str = "dbcdsfgdfga"; int size = strlen(str); CharSort(array1,str,size); Print(array1,size); return 0; }

运行结果如下: 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3