華為曆年試題(5)

來源:互聯網
上載者:User

標籤:style   blog   color   問題   表   name   

將一個字串的母音字母複製到另一個字串,並排序(30分)

問題描述:有一字串,裡面可能包含英文字母(大寫、小寫)、數字、特殊字元,現在需要實現一函數,

將此字串中的母音字母挑選出來,存入另一個字串中,並對字串中的字母進行從小到大的排序

(小寫母音字母在前,大寫的母音字母在後,依次有序)。

說明:1、  母音字母是a,e,i,o,u,A,E,I,O,U。

2、  篩選出來的母音字母,不需要剔重;最終輸出的字串,小寫母音字母排在前面,大寫母音字母排在後面,依次有序。

要求實現函數:void sortVowel (char* input, char* output);

【輸入】  char* input,表示輸入的字串

【輸出】  char* output,排好序之後的母音字串。

【返回】  無樣本

輸入:char *input = “Abort!May Be Some Errors In Out System. “輸出:char *output =“aeeeooouAEIO “

#include<map>#include<string>using namespace std;void sortVowel (char* input, char* output){   map<char,int> ao,AO;   unsigned j=0;   for(unsigned i=0;i<strlen(input);i++)   {     if(input[i]==‘a‘||input[i]==‘o‘||input[i]==‘e‘||input[i]==‘i‘||input[i]==‘u‘)       ao[input[i]]++;     if(input[i]==‘A‘||input[i]==‘O‘||input[i]==‘E‘||input[i]==‘I‘||input[i]==‘U‘)       AO[input[i]]++;   }   for(map<char,int>::iterator iter=ao.begin();iter!=ao.end();iter++)   {       int l = iter->second;       while(l)       {           output[j++]=iter->first;           l--;       }      }      for(map<char,int>::iterator iter1=AO.begin();iter1!=AO.end();iter1++)   {       int l0 = iter1->second;       while(l0)       {           output[j++]=iter1->first;           l0--;       }   }   output[j]=‘\0‘;//字串的題一定不要忘了後面加‘\0‘}void main(){    char* input= "Abort!May Be Some Errors In Out System. ";    char output[100];    sortVowel (input, output);    puts(output);}

分析:這個題用map的鍵自動排序思想正好,map<char,int>,int記錄每個字元出現的次數,正好索引值char按大小排序,

只是大寫字母排在小寫字母前不符合題目要求,所以用了兩個map來分別記錄,然後把結果寫到output中。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.