怎么把string转换为unsigned char * 呢?

timke212004 2009-08-14 09:32:18
用c_str()可以把string转换为const char *,我现在转换成unsigned char *该怎么办呢?memcpy()?有没有什么办法?最好举个例子...而const unsigned char * 怎么转换到 unsigned char * 呢?
...全文
1087 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
windsting 2009-08-14
  • 打赏
  • 举报
回复
取决于你想干什么,如果你是作为一个参数去调用一个你无法修改其实现的函数,
并且知道该函数是不会修改该指针所指向的内容时,可以用1楼的方法,这么写:

const unsigned char* pCUC = (const unsigned char*)strContent.c_str();
unsigned char* pUC = const_cast<unsigned char*> (pCUC);
FunctionUsePointerToUnsignedChar(pUC);

但是如果你使用pUC的时候,会修改到其内容,最好别这么写,因为会改掉你原来的string中的内容,
可以new出来一个合适大小的空间,然后strcpy进去,用完了别忘了 delete[] 就是了:

unsigned char* pUC = new unsigned char[strContent.size()+1];
strcpy(pUC,strContent.c_str());
// use the pUC here
delete [] pUC;

如果你发帖的时候说清楚自己的需求(也就是具体使用你要求的内容的地方),
应该能得到更有针对性的更优的解决方案,学会问问题吧。
mstlq 2009-08-14
  • 打赏
  • 举报
回复
我也顶一楼(虽然有点笔误……)
cl383804490 2009-08-14
  • 打赏
  • 举报
回复
顶一楼
mstlq 2009-08-14
  • 打赏
  • 举报
回复
string-->const unsigned char*:
(const unsigned char*)string.c_str()
or
const unsigned char* s =static_cast<const unsigned char*> (string.c_str())



const unsigned char*-->unsigned char*:

const unsigned char* str;
unsigned char* s = const_cast<unsigned char *>(str);
xingzhe2001 2009-08-14
  • 打赏
  • 举报
回复
string-->const unsigned char*:
(const unsigned char*)string.c_str()


const unsigned char*-->unsigned char*:

const unsigned char* str;
unsigned char* s = const_cast(unsigned char)str;

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧