C_C++_XY_09.数字字符串转二进制
输入一个三个数字的字符串,请将此串进行如下整理:
将字符串转换成数字,转换为二进制数,如果倒数第三位是“0”,则输出“0”,如果是“1”,则输出“1”。
比如,输入字符串“240”,转换为二进制为“11110000”,它的倒数第三位是“0”,所以输出是“0”.
void ArrangeString(const char *pInputStr, long lInputLen, char *pOutputStr);
· 【输入】 pInputStr: 输入字符串
· lInputLen: 输入字符串长度
· 【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
· 【注意】不用考虑输入串为空,非数字等异常
输入:“000”
输出:“0”
输入:“251”
输出:“0”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
| #include <iostream> #include <stdlib.h> #include <bitset> using namespace std; void ArrangeString(const char *pInputStr, long lInputLen, char *pOutputStr) { if ((pInputStr == NULL) || (lInputLen <= 0) || (pOutputStr == NULL)) { return; } int num = atoi(pInputStr); bitset<32> b(num); if (b[2] == 1) { *pOutputStr = '1'; } else { *pOutputStr = '0'; } pOutputStr++; *pOutputStr = '\0'; } //void ArrangeString(const char *pInputStr, long lInputLen, char *pOutputStr) //{ // if ((pInputStr == NULL) || (lInputLen <= 0) || (pOutputStr == NULL)) // { // return; // } // // int num = atoi(pInputStr); // if ((num >> 2) & 0x01 == 1) // { // *pOutputStr = '1'; // } // else // { // *pOutputStr = '0'; // } // // pOutputStr++; // *pOutputStr = '\0'; //} int main() { const char *pInputStr = "251"; char pOutputStr[10]; ArrangeString(pInputStr, 3, pOutputStr); cout << pOutputStr << endl; return 0; }
|