按照指定規則對輸入的字符串進行處理。ios
詳細描述:spa
將輸入的兩個字符串合併。設計
對合並後的字符串進行排序,要求爲:下標爲奇數的字符和下標爲偶數的字符分別從小到大排序。這裏的下標意思是字符在字符串中的位置。code
對排訓後的字符串進行操做,若是字符爲‘0’——‘9’或者‘A’——‘F’或者‘a’——‘f’,則對他們所表明的16進制的數進行BIT倒序的操做,並轉換爲相應的大寫字符。如字符爲‘4’,爲0100b,則翻轉後爲0010b,也就是2。轉換後的字符爲‘2’; 如字符爲‘7’,爲0111b,則翻轉後爲1110b,也就是e。轉換後的字符爲大寫‘E’。blog
舉例:輸入str1爲"dec",str2爲"fab",合併爲「decfab」,分別對「dca」和「efb」進行排序,排序後爲「abcedf」,轉換後爲「5D37BF」排序
接口設計及說明:接口
/*ci
功能:字符串處理文檔
輸入:兩個字符串,須要異常處理字符串
輸出:合併處理後的字符串,具體要求參考文檔
返回:無
*/
void ProcessString(char* str1,char *str2,char * strOutput)
{
}
輸入兩個字符串
輸出轉化後的結果
dec fab
5D37BF
1 // testt.cpp : 定義控制檯應用程序的入口點。 2 // 3 4 #include "stdafx.h" 5 6 #include<iostream> 7 #include<cstring> 8 9 using namespace std; 10 11 void ProcessString(char* str1, char *str2, char * strOutput) 12 { 13 char *str3 = strcat(str1, str2); 14 int len = strlen(str3); 15 for (int j = len - 1; j >= 0; j--) 16 { 17 for (int i = 0; i < len; i++) 18 { 19 if (i + 2 < len) 20 { 21 if (i % 2 == 0) 22 { 23 if (str3[i] > str3[i + 2]) 24 { 25 char temp; 26 temp = str3[i + 2]; 27 str3[i + 2] = str3[i]; 28 str3[i] = temp; 29 } 30 31 } 32 else 33 { 34 if (str3[i] > str3[i + 2]) 35 { 36 char temp; 37 temp = str3[i + 2]; 38 str3[i + 2] = str3[i]; 39 str3[i] = temp; 40 } 41 } 42 } 43 44 } 45 } 46 int i = 0; 47 while (i < len) 48 { 49 if (str3[i] == '0') str3[i] = '0'; 50 else if (str3[i] == '1') str3[i] = '8'; 51 else if (str3[i] == '2') str3[i] = '4'; 52 else if (str3[i] == '3') str3[i] = 'C'; 53 else if (str3[i] == '4') str3[i] = '2'; 54 else if (str3[i] == '5') str3[i] = 'A'; 55 else if (str3[i] == '6') str3[i] = '6'; 56 else if (str3[i] == '7') str3[i] = 'E'; 57 else if (str3[i] == '8') str3[i] = '1'; 58 else if (str3[i] == '9') str3[i] = '9'; 59 else if (str3[i] == 'a' || str3[i] == 'A') str3[i] = '5'; 60 else if (str3[i] == 'b' || str3[i] == 'B') str3[i] = 'D'; 61 else if (str3[i] == 'c' || str3[i] == 'C') str3[i] = '3'; 62 else if (str3[i] == 'd' || str3[i] == 'D') str3[i] = 'B'; 63 else if (str3[i] == 'e' || str3[i] == 'E') str3[i] = '7'; 64 else if (str3[i] == 'f' || str3[i] == 'F') str3[i] = 'F'; 65 66 i++; 67 } 68 strncpy(strOutput, str3, len);//末尾沒有\0,須要手動加 69 strOutput[len] = '\0'; 70 } 71 72 int main(void) 73 { 74 char str1[1000], str2[1000]; 75 char strOutput[2000]; 76 77 while (cin >> str1 >> str2) 78 { 79 ProcessString(str1, str2, strOutput); 80 cout << strOutput<<endl; 81 } 82 83 84 return 0; 85 }