如何将std :: string复制到unsigned char数组?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将std :: string复制到unsigned char数组?相关的知识,希望对你有一定的参考价值。
如何将std :: string(样本)复制到unsigned char数组(陷阱)?
int main() {
unsigned char trap[256];
std::string sample = ".1.3.6.1.4";
strcpy(trap,sample.c_str());
std::cout << trap << std::endl;
}
上面的代码抛出错误:
time.cpp: In function ‘int main()’:
time.cpp:20: error: invalid conversion from ‘unsigned char*’ to ‘char*’
time.cpp:20: error: initializing argument 1 of ‘char* strcpy(char*, const char*)’
答案
这是一种方式:
#include <algorithm>
#include <iostream>
auto main() -> int
{
unsigned char trap[256];
std::string sample = ".1.3.6.1.4";
std::copy( sample.begin(), sample.end(), trap );
trap[sample.length()] = 0;
std::cout << trap << std::endl;
}
另外检查缓冲区是否足够大是个好主意。
以上是关于如何将std :: string复制到unsigned char数组?的主要内容,如果未能解决你的问题,请参考以下文章
如何将C++中string类型的字符串赋给unsigned char数组
如何使用参数将 std::string 复制到 std::string?
std::string 与 unsigned char[] 和 unsigned char* 有啥不同?
如何将“char”转换为“std::string”? [复制]