用c ++中的4个字符拆分字符串

时间:2017-02-23 01:15:24

标签: c++ split binary hex

我有一个关于拆分字符串的问题。我正在创建一个二进制到十六进制转换器,并希望拆分我的二进制序列,用4个字符表示为字符串,以便我可以轻松地将每组4位转换为十六进制格式:

示例:

00000111010110111100110100010101

会变成:

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

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分: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