unsigned char转string
时间: 2023-09-04 21:09:32 浏览: 107
可以使用string的构造函数来将unsigned char数组转换为string。例如:
```
unsigned char arr[] = {72, 101, 108, 108, 111, 33}; // "Hello!"的ASCII码
std::string str(arr, arr + sizeof(arr) / sizeof(unsigned char));
```
这样,arr数组中的数据就被转换为了字符串"Hello!"。
相关问题
QT 中unsigned char 转string
可以使用QString的fromUtf8()函数将unsigned char类型转换为QString类型,然后再使用QString的toStdString()函数将QString类型转换为std::string类型。具体代码如下:
unsigned char uc = 'a';
QString qstr = QString::fromUtf8(reinterpret_cast<const char*>(&uc), sizeof(uc));
std::string str = qstr.toStdString();
unsigned char* fpBuff = NULL; unsigned long fplength = 0; unsigned char temp[Max_num] = { 0 }; unsigned char Lasttemp[Max_num] = { 0 }; std::string Sendstr; //打开文件,读取文件 fplength = readfile(&fpBuff, fplength); //发送文件 SendFile(&fpBuff, fplength, temp, Lasttemp, Sendstr); delete fpBuff; void CMFCcomtooltryDlg::SendFile(unsigned char** fpBuff, unsigned long fplength, unsigned char temp[], unsigned char Lasttemp[], std::string Sendstr) { int i = 0; int n = 0; //发送次数 余数 S32 sendnum = fplength / Max_num; unsigned long lastlength = fplength % Max_num; //循环发送 for (i = 0; i < sendnum; i++) { //每次取1024 memcpy(temp, (fpBuff + n), Max_num); n += Max_num; //unsigned char 转 string for (i = 0; i < Max_num; i++) { Sendstr += static_cast<char>(temp[i]); } com.Send(Sendstr); Sleep(Sleep_time); //置空 Sendstr = ""; } //取最后的字节 memcpy(Lasttemp, (fpBuff + n), lastlength); //unsigned char 转 string for (i = 0; i < lastlength; i++) { Sendstr += static_cast<char>(Lasttemp[i]); } com.Send(Sendstr); }
这段代码是一个示例,它涉及文件的读取和发送。首先,它定义了一些变量,包括一个指向无符号字符的指针 `fpBuff`,一个表示文件长度的无符号长整型变量 `fplength`,以及一些临时数组和字符串。
在 `readfile` 函数中,文件被打开并读取,将文件内容存储在 `fpBuff` 中,并更新文件长度 `fplength`。
接下来,在 `SendFile` 函数中,根据文件长度计算发送次数和剩余长度。然后,通过循环将每次发送的数据复制到 `temp` 数组中,并将其转换为字符串添加到 `Sendstr` 中。然后,通过 `com.Send(Sendstr)` 发送数据,并通过 `Sleep(Sleep_time)` 等待一段时间。
最后,剩余的字节被复制到 `Lasttemp` 数组中,并将其转换为字符串添加到 `Sendstr` 中。然后,通过 `com.Send(Sendstr)` 发送最后的数据。
需要注意的是,在代码的最后,使用 `delete fpBuff;` 删除了动态分配的内存。
请注意,这只是代码的一部分,并不能完整执行。你可能需要提供更多的信息来解决问题。
阅读全文