描述 | |
---|---|
知识点 | 字符串,排序 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | |
输出 | |
样例输入 | A Famous Saying: Much Ado About Nothing (2012/8). |
样例输出 | A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8). |
/* gets example */
#include <stdio.h>
#include"stdlib.h"
#include"string.h"
#include"ctype.h"
/*
1先把字符串中的字母字符提取出来放到另外一个内存中(字符数组存储)
2然后对字母字符串进行排序。
3排序好的字符串插入覆盖原字符串字母字符的位置
*/
int main()
{
while (true)
{
char str[256];
gets(str);
char str1[256]={0};
int k=0;
int len=strlen(str);
///11、提取字母字符 存放str1中
for(int i=0;i<len;i++){
if(isalpha(str[i])){ //isalpha()函数用来判别字符是否为字母
str1[k]=str[i];
k++;
}
}
str1[k]='\0';
int len1=strlen(str1);
int temp;
//2、对str1中的字母字符串排序
for(int i=0;i<len1-1;i++){
for(int j=len1-1;j>i;j--){
if(toupper(str1[j])<toupper(str1[j-1])){
temp=str1[j];
str1[j]=str1[j-1];
str1[j-1]=temp;
}
}
}
//排序好的字符串插入覆盖原字符串字母字符的位置
for(int i=0,j=0;i<len;i++){
if(isalpha(str[i])){
str[i]=str1[j];
j++;
}
}
printf("%s",str);
}
return 0;
}