字符串排序

来源:互联网 发布:淘宝店产品拍照 编辑:程序博客网 时间:2024/06/14 19:50

编写一个程序,将输入字符串中的字符按如下规则排序。

规则1:英文字母从AZ排列,不区分大小写。

      如,输入:Type 输出:epTy

规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。

    如,输入:BabA 输出:aABb

规则3:非英文字母的其它字符保持原来的位置。

    如,输入:By?e 输出:Be?y

样例:

    输入:

   A Famous Saying: Much Ado About Nothing(2012/8).

    输出:

   A aaAAbc dFgghhiimM nNn oooos Sttuuuy (2012/8)

注:此处可以用冒泡排序法,因为针对条件“同一个英文字母的大小写同时存在时,按照输入顺序排列”,正式冒泡排序的稳定性。

#include<iostream>#include<stdlib.h>#include<ctype.h>using namespace std;int main(){char str[50];gets(str);int q,j,k,temp;int n=strlen(str);for(int i=0;i<n;i++){for( j=0;j<n-i-1;j++){if(toupper(str[j])>'Z'||toupper(str[j])<'A')continue;k=toupper(str[j]);q=j;while((toupper(str[j+1])>'Z'||toupper(str[j+1])<'A')&&j<n-i-1)j++;if(j>=n-i-1)continue;if(k>toupper(str[j+1])){temp=str[q];str[q]=str[j+1];str[j+1]=temp;}}}for(int i=0;i<n;i++)cout<<str[i];system("pause");return 0;}

0 0
原创粉丝点击