标题
转换排序
描述
输入一维字符数组str[N](N≤80),查找出其中小写字母并转换成大写字母,按下面方式排序:1、只对大写字母进行排序;2、其他字符原位保持不动;3、转换后的各大写字母由小到大排序。输出排序后的结果。
时间限制
1
内存限制
10000
类别
1
输入说明
输入一行字符数据str[N](N≤80)。
输出说明
格式输出:输出仅对转换后的大写字母排序结果,其他字符原位不动输出。
输入样例
xA3T7p
输出样例
AP3T7X
提示
注意转换方式和排序要求。
#include<stdio.h>
#include<string.h>
int main()
{
int N,i,j=0,k,s=0,zan;
char str[80],temp[80];
gets(str);
N=strlen(str);
for(i=0;i<N;i++)
{
if(str[i]>='a'&&str[i]<='z')
str[i]-=32;
if(str[i]>='A'&&str[i]<='Z')
temp[j++]=str[i];
}
for(i=0;i<j-1;i++)
{
for(k=0;k<j-i-1;k++)
{
if(temp[k]>temp[k+1])
{
zan=temp[k];
temp[k]=temp[k+1];
temp[k+1]=zan;
}
}
}
for(i=0;i<N;i++)
{
if(str[i]>='A'&&str[i]<='Z')
{
str[i]=temp[s++];
}
}
puts(str);
return 0;
}