描述 | |
---|---|
知识点 | 字符串 |
运行时间限制 | 0M |
内存限制 | 0 |
输入 | Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。
|
输出 | Lily的所有图片按照从小到大的顺序输出
|
样例输入 | Ihave1nose2hands10fingers |
样例输出 | 0112Iaadeeefghhinnnorsssv |
解题思路:利用ASCII值,过于复杂,请参加代码2
ASCII值
0--9 48--57
A--Z 65--90
a--z 97--122
#include<iostream>
using namespace std;
int main()
{
char str[1024];
gets(str);
int len=strlen(str);
int temp[80],count=0;
char outstr[1024];
for(int i=0;i<80;i++)
{
temp[i]=0;
}
for(int i=0;i<len;i++)
{
temp[str[i]-'0']++;
}
for(int i=0;i<80;i++)
{
if(i>=0 && i<=9 && temp[i]!=0)
{
for(int j=0;j<temp[i];j++)
{
outstr[count++]=i+'0';
}
}
else if(i>=17 && i<=42 && temp[i]!=0)
{
for(int j=0;j<temp[i];j++)
{
outstr[count++]=i+'0';
}
}
else if(i>=49 && i<=74 && temp[i]!=0)
{
for(int j=0;j<temp[i];j++)
{
outstr[count++]=i+'0';
}
}
}
outstr[count]='\0';
cout<<outstr;
system("pause");
return 0;
}
代码2:
字符串数组中的元素可以直接排序,这样的话,直接对数组元素进行排序就行了
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char a[1000];
gets(a);
int k=strlen(a);
for(int i=0;i<k;i++)//选择排序
{
for(int j=i+1;j<k;j++)//在i+1到k中,找比a[i]小的数
{
if(a[i]>a[j])
{
char temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
printf("%s",a);
system("pause");
return 0;
}