2017-02-23 104 views
0

我對拆分字符串有疑問。我正在創建一個二進制到十六進制轉換器,並且想要將我的二進制序列以4個字符表示爲一個字符串,以便我可以輕鬆地將每組4位轉換爲十六進制形式:在C++中將字符串拆分爲4個字符

示例:

00000111010110111100110100010101 

會變成:

"0000", "0111", "0101", "1011", "1100", "1101", "0001", "0101" 

謝謝您可以提供任何幫助!

+2

'for'循環和'substr'好像是一個很好的簡單起點 – pm100

+0

@ pm100感謝你試用了 – Biggytiny

+1

是否可以將字符串轉換爲大小爲[n] [4]的char數組? – Jcrash29

回答

1

使用std::string::substr功能和簡單的for循環你可以再分串入的4組,並將其推入一個std::vector<std::string>如下圖所示...

#include <iostream> 
#include <vector> 
#include <string> 

int main() { 
    std::string nums = "00000111010110111100110100010101"; 
    std::vector<std::string> bins; 

    for (std::size_t i = 0; i < nums.size(); i += 4) 
     bins.push_back(nums.substr(i, 4)); 

    return 0; 
} 

然後bins成爲std::vector填充與細分的二進制數字。