输入字符串按ASCⅡ大小排序

目录

1.题目

2.思路解析

3.代码

4.总结


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.总结

希望大家多多支持与关注!!!!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值