问题描述: Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。
知识点: 字符串
题目来源: 内部整理
练习阶段: 初级
运行时间限制: 无限制
内存限制: 无限制
输入:
Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。
问题分析:冒泡排序,数字0的ASCII码是47,字母A的ASCII码是65,字母a的ASCII码是97
代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
getline(cin,str);
int len=str.size();
int i=0,j=0;
char temp;
for(i=0;i<len-1;i++)
{
for(j=0;j<len-1-i;j++)
{
if(str[j]>str[j+1])
{
temp=str[j+1];
str[j+1]=str[j];
str[j]=temp;
}
}
}
cout<<str<<endl;
return 0;
}
输出:
Lily的所有图片按照从小到大的顺序输出
样例输入: Ihave1nose2hands10fingers
样例输出: 0112Iaadeeefghhinnnorsssv