字符串合併處理

題目描述

按照指定規則對輸入的字符串進行處理。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 }
相關文章
相關標籤/搜索