二进制转字符串 C++
时间: 2023-07-04 12:26:51 浏览: 305
C++ gbk转unicode、ansi转unicode,字符串查找、切割、转十六进制、转二进制、转义,随机数等数据处理类源码
在 C++ 中,可以使用 `bitset` 类型来处理二进制数,使用 `stoi` 函数将二进制字符串转换为整数,使用 `static_cast<char>` 把整数转换为字符。下面是一个示例代码将二进制字符串转换为字符串:
```c++
#include <bitset>
#include <iostream>
#include <string>
using namespace std;
int main() {
string binary_str = "01101000 01100101 01101100 01101100 01101111";
string result = "";
string delimiter = " ";
size_t pos = 0;
string token;
while ((pos = binary_str.find(delimiter)) != string::npos) {
token = binary_str.substr(0, pos);
int decimal = stoi(token, nullptr, 2);
result += static_cast<char>(decimal);
binary_str.erase(0, pos + delimiter.length());
}
int decimal = stoi(binary_str, nullptr, 2);
result += static_cast<char>(decimal);
cout << result << endl;
return 0;
}
```
在这个示例中,我们首先定义了一个二进制字符串 `binary_str`,然后创建了一个空字符串 `result`,用于存储转换后的字符串。接着,我们定义了一个分隔符 `delimiter`,用于将二进制字符串分割成数字。
然后,我们使用 `find` 函数和一个 while 循环来遍历二进制字符串中的每个数字。在每一次循环中,我们使用 `substr` 函数将二进制字符串中的每个数字提取出来,使用 `stoi` 函数将其转换为十进制整数,使用 `static_cast<char>` 函数将整数转换为字符,最后将字符添加到结果字符串中。
最后,我们使用 `stoi` 函数将最后一个数字转换为十进制整数,使用 `static_cast<char>` 函数将其转换为字符,并将其添加到结果字符串中。最终,我们输出结果字符串。
阅读全文