c++-字符串排序-冒泡排序

题目描述

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

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

       如,输入: Type   输出: epTy

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

     如,输入: BabA   输出: aABb

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

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

样例:

    输入:

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

    输出:

   A  aaAAbc   dFgghh  iimM   nNn   oooos   Sttuuuy (2012/8).


输入描述:

 
   

输出描述:

 
   

示例1

输入

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

输出

A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
冒泡排序即可:

#include 
#include 
#include 
#include 

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::swap;

int changeA_2_a(char c){
	if(c>='A'&&c<='Z')
		c+=32;
	return c;
}

int is_letter(char c){
	if(c>='a'&&c<='z')
		return 1;
	else if(c>='A'&&c<='Z')
		return 1;
	else
		return 0;
}

void solution(char *res){
    int len=strlen(res);
    int j2;

    for(int i=0;i=i;j--){
    		if(!is_letter(res[j])){
    			continue;
    		}
    		j2=j-1;
    		while(!is_letter(res[j2])){
    			j2--;
    			if(j2=i)
    			swap(res[j],res[j2]);

    	}
    }
    
}

int main()
{
    char res[1000];
    while(cin>>res){
    	solution(res);
        cout<





你可能感兴趣的:(c++笔试)