首页 > 其他 > 详细

字符串转换相关

时间:2014-04-21 13:06:52      阅读:508      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 1    // 七位终端号转十位  例: "EAU001" --> "1410290001"
 2    KYLib::KYString TDevObj::GetTerminalIDByDev(KYString ADevID)
 3    {
 4        KYString result = "";
 5        char szResult[11] = {0};   // 存放10位终端号,需多定义一个字符存放结束符‘\0‘
 6        char szBuffer[8]  = {0};  
 7        KYString szTmp = "";
 8 
 9        int nIndex = strlen((const char*)ADevID) - 7;
10        strncpy(szBuffer, (const char*)ADevID + nIndex, 7);
11        
12        //
13        if (szBuffer[0] < A){
14            szResult[0] = 0;
15            memcpy(szResult + 1, szBuffer, 1);
16        }
17        else{
18            szTmp = IntToStr(szBuffer[0] - A + 10);
19            memcpy(szResult, (const char*)szTmp, 2);
20        }
21 
22        //
23        if (szBuffer[1] < A){
24            szResult[2] = 0;        // 此位初始化为了结束符, 需赋值‘0‘
25            memcpy(szResult + 3, szBuffer + 1, 1);
26        }
27        else{
28            szTmp = IntToStr(szBuffer[1] - A + 10);
29            memcpy(szResult + 2, (const char*)szTmp, 2);
30        }
31 
32        //
33        if (szBuffer[2] < A){
34            szResult[4] = 0;
35            memcpy(szResult + 5, szBuffer + 2, 1);
36        }
37        else if (szBuffer[2] >= A && szBuffer[2] < O)
38        {
39            szTmp = IntToStr(szBuffer[2] - A + 10);
40            memcpy(szResult + 4, (const char*)szTmp, 2);
41        }
42        else if (szBuffer[2] > O)       // 大于字母O的需要减1
43        {
44            szTmp = IntToStr(szBuffer[2] - A + 10 -1);
45            memcpy(szResult + 4, (const char*)szTmp, 2);
46        }
47 
48        memcpy(szResult + 6, szBuffer + 3, 4);
49 
50        result = szResult;
51 
52        return result;
53    }
bubuko.com,布布扣

 

bubuko.com,布布扣
 1 // 十位终端号转七位   例:"1404210001" -->"E4L0001"
 2 string GetConvertCode(char* pTerminalID)
 3 {
 4     char szBuffer[11] = {0};
 5     char szResult[8] = {0};
 6     int nIndex = strlen(pTerminalID) - 10;
 7     strncpy(szBuffer, pTerminalID + nIndex, 10);
 8     szResult[0] = szBuffer[1];
 9     szResult[1] = (szBuffer[2] - 0x30)*10 + (szBuffer[3] - 0x30);
10     if (szResult[1] >= 10)
11     {
12         szResult[1] = szResult[1] - 10 + A;
13     }
14     else
15     {
16         szResult[1] = szResult[1] + 0;
17     }
18 
19     szResult[2] = (szBuffer[4] - 0x30)*10 + (szBuffer[5] - 0x30);
20     if (szResult[2] >= 24)//屏蔽字母O
21     {
22         szResult[2]++;
23     }
24     if (szResult[2] >= 10)
25     {
26         szResult[2] = szResult[2] - 10 + A;
27     }
28     else
29     {
30         szResult[2] = szResult[2] + 0;
31     }
32     memcpy(szResult + 3, szBuffer + 6, 4);
33     string strRet = szResult;
34 
35     return strRet;
36 }
bubuko.com,布布扣

 

字符串转换相关,布布扣,bubuko.com

字符串转换相关

原文:http://www.cnblogs.com/kyle-he/p/3677985.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!