字串處理轉換
問題描述:
在給定字串中找出單詞( 「單詞」由大寫字母和小寫字母字元構成,其他非字母字元視為單詞的間隔,如空格、問號、數字等等;另外單個字母不算單詞);找到單詞後,按照長度進行降序排序,(排序時如果長度相同,則按出現的順序進行排列),然後輸出到乙個新的字串中;如果某個單詞重複出現多次,則只輸出一次;如果整個輸入的字串中沒有找到單詞,請輸出空串。輸出的單詞之間使用乙個「空格」隔開,最後乙個單詞後不加空格。
要求實現函式:
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個分成一組,...