2017-02-23 65 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填充与细分的二进制数字。