華為機試之字串處理轉換

2021-07-04 22:50:07 字數 1299 閱讀 9875

字串處理轉換

問題描述:    

在給定字串中找出單詞( 「單詞」由大寫字母和小寫字母字元構成,其他非字母字元視為單詞的間隔,如空格、問號、數字等等;另外單個字母不算單詞);找到單詞後,按照長度進行降序排序,(排序時如果長度相同,則按出現的順序進行排列),然後輸出到乙個新的字串中;如果某個單詞重複出現多次,則只輸出一次;如果整個輸入的字串中沒有找到單詞,請輸出空串。輸出的單詞之間使用乙個「空格」隔開,最後乙個單詞後不加空格。

要求實現函式:

void my_word(charinput, char output)

【輸入】  char input, 輸入的字串

【輸出】  char output,輸出的字串

【返回】 無

示例輸入:charinput="some local buses, some1234123drivers" ,

輸出:charoutput="drivers local buses some"

輸入:charinput="%a^123 t 3453i*()" ,

輸出:charoutput=""

下面是我自己寫的,可能有點繁瑣了

#includeusing namespace std;

#define max 1000

#includebool isletter(char letter)

int main()

; while(gets(str))

; //二維陣列,每一行放乙個單詞

char *p = str;

int count = 0;

int i = 0;

while(*p)

count++;

i = 0;

while(*p&&(!((*p>='a'&&*p<='z')||(*p>='a'&&*p<='z'))))

}//所有的字串都已儲存

//按長度降序排序

if(count == 0)

char word[100][100]=;

int main()

; char output[max]=;

gets(input);

int i = 0,j = 0;

int flag = 0;

int num = 0; //單詞的數目

for(int k = 0;k<=strlen(input);k++)

else

if(flag == 1 && j>1)

}strcpy_s(output,word[0]);

for(int k = 1;k

華為機試 字串合併處理

題目描述 按照指定規則對輸入的字串進行處理。詳細描述 將輸入的兩個字串合併。對合併後的字串進行排序,要求為 下標為奇數的字元和下標為偶數的字元分別從小到大排序。這裡的下標意思是字元在字串中的位置。對排序後的字串進行操作,如果字元為 0 9 或者 a f 或者 a f 則對他們所代表的16進製制的數進...

華為機試 字串分離

題目描述 通過鍵盤輸入任意乙個字串序列,字串可能包含多個子串,子串以空格分割。請編寫乙個程式,自動分離出各個子串,並使用 將其分離,並且在最後也補充乙個 並將子串儲存。要求實現函式 void dividestring const char pinputstr,long iinputlen,char ...

華為機試 字串分隔

題目 連續輸入字串,請按長度為8拆分每個字串後輸出到新的字串陣列 長度不是8整數倍的字串請在後面補數字0,空字串不處理。輸入描述 連續輸入字串 輸入2次,每個字串長度小於100 輸出描述 輸出到長度為8的新字串陣列 示例1 輸入 abc輸出 abc00000 分析 此題要求我們把字串每8個分成一組,...