我有一个关于拆分字符串的问题。我正在创建一个二进制到十六进制转换器,并希望拆分我的二进制序列,用4个字符表示为字符串,以便我可以轻松地将每组4位转换为十六进制格式:
示例:
00000111010110111100110100010101
会变成:
"0000", "0111", "0101", "1011", "1100", "1101", "0001", "0101"
感谢您提供任何帮助!
答案 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
。