目录
1.题目
随机输入一串字符,按照每个字符的ASCⅡ码的大小进行排序。、
例:输入:11557744asdczxcDFFCVGQ
输出:11445577CDFFGQVaccdsxz
2.思路解析
方法一:我们按最简单的方法进行求解,
创建字符串数组,输入字符串;
按照冒泡排序的方法进行求解;
输出字符串。
方法二:利用了两个数组的方法进行求解;
创建字符串数组,输入数组内容;
创建数组arr[128]用于记录每个字符出现的次数;
按照大小,依次输出字符。
*注:每个字符存放在数组arr的位置,是由字符的ASCⅡ的值所决定的;
所以我们输出时,是输出的arr的下标,以%c的形式输出。
3.代码
将所输入的字符串按照ASCⅡ的大小来排序 · ca6b85c · 风夏/C语言进阶 - Gitee.com
#define _CRT_SECURE_NO_WARNINGS 1
//输入字符串,按照字符的ASCⅡ码排序
#include<stdio.h>
#include<string.h>
//利用冒泡排序的原理进行暴力求解
//int main()
//{
// char arr[1000] = { 0 };
// scanf("%s", arr);
// int len = strlen(arr);
// char tmp = '0';
// for (int i = 0; i < len - 1; i++)
// {
// for (int j = 0; j < len - 1 - i; j++)
// {
// if (arr[j] > arr[j + 1])
// {
// tmp = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = tmp;
// }
// }
// }
// printf("%s\n", arr);
// return 0;
//}
//利用两个数组的方法进行排序
int main()
{
//记录字符出现的次数
int arr[128] = { 0 };
char ch[1000] = "0";
scanf("%s", ch);
int len = 0;
len = strlen(ch);
for (int i = 0; i < len; i++)
{
arr[ch[i]]++;
}
for (int i = 0; i < 128; i++)
{
while(arr[i]--)
printf("%c", i);
}
printf("\n");
return 0;
}
4.总结
希望大家多多支持与关注!!!!

本文介绍了两种C语言实现字符串按ASCII码排序的方法:冒泡排序和利用计数数组。通过示例代码详细展示了如何对输入的字符串进行排序,并提供了相应的思路解析。文章最后总结了这两种方法,适合C语言初学者和进阶者学习。
8558

被折叠的 条评论
为什么被折叠?



