每天學習一點程式設計(10)(字串的合併排序處理)

2021-06-22 04:58:33 字數 1548 閱讀 3853

將輸入的兩個字串合併。

對合併後的字串進行排序,要求為:下標為奇數的字元和下標為偶數的字元分別從小到大排序。這裡的下標意思是字元在字串中的位置。

對排訓後的字串進行操作,如果字元為『0』——『9』或者『a』——『f』或者『a』——『f』,則對他們所代表的16進製制的數進行bit倒序的操作,並轉換為相應的大寫字元。如字元為『4』,為0100b,則翻轉後為0010b,也就是2。轉換後的字元為『2』; 如字元為『7』,為0111b,則翻轉後為1110b,也就是e。轉換後的字元為大寫『e』。

舉例:輸入str1為"dec",str2為"fab",合併為「decfab」,分別對「dca」和「efb」進行排序,排序後為「abcedf」,轉換後為「5d37bf」

/*功能: 字串處理輸入:兩個字串,需要異常處理輸出:合併處理後的字串,具體要求參考文件

返回: 無

*/void processstring(char* str1,char *str2,char * stroutput)

void processstring(char* str1,char *str2,char * stroutput)

} for(m = 1; m < len; m = m + 2) }

int ii;

for(ii = 0; ii < len; ii ++)

stroutput[ii] = temp_str[ii];

stroutput[ii] = '\0';

char t1[6] = ;

char t2[6] = ;

int t3[6] = ;

int t4[10]= ;

char t5[10] = ;

char temp_out[2 * n + 1];

for(ii = 0; ii < len; ii ++)

else if(stroutput[ii] >= '0' && stroutput[ii] <= '9')

}temp_out[ii] = '\0';

for(ii = 0; ii < len; ii ++)

stroutput[ii] = temp_out[ii];

stroutput[ii] = '\0';

cout << stroutput << endl;

}void reverse(int n, int *temp1)

}char byte_reverse(int n, char *t2, int *t3, int *t4, char *t5)

; int i;

reverse(n, temp1);

int j;

int sum = 0;

for(j = 0; j < 4; j ++)

sum += temp1[j] * (1 << (4 -1 - j)) ;

int k;

if(sum > 9)

else

return temp_out1;

}程式雖然執行沒有錯誤,但是感覺寫得比較亂。

別人可能只要二三十分鐘就能完成的工作,我卻花了6個多小時才做出來,感覺自己的基本功還需要大大的加強。

每天學習一點程式設計(13)(字串壓縮)

通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1.僅壓縮連續重複出現的字元。比如字串 abcbc 由於無連續重複字元,壓縮後的字串還是 abcbc 2.壓縮欄位的格式為 字元重複的次數 字元 例如 字串 yyy...

程式設計之美一 字串

字串是最常見的面試題目型別,應當分配最大的時間。字串本身很簡單,但是相關的題目需要更複雜的演算法來解決。比如說動態規劃,搜尋,等等。include strlen 求字串長度 strcmp 比較2個字串是否一樣 strcat 字串連線操作 strcpy 字串拷貝操作 strncat 字串連線操作 前n...

6 1 字串的連線 (10 分) 。

本題要求實現乙個函式,將兩個字串連線起來 函式介面定義 char str cat char s,char t 函式str cat應將字串t複製到字串s的末端,並且返回字串s的首位址。裁判測試程式樣例 include include define maxs 10 char str cat char s...