【问题标题】:convert string to u_char*将字符串转换为 u_char*
【发布时间】:2012-04-18 02:25:27
【问题描述】:

我有两个功能

foo(const string &value)
{
  bar(...)
}

bar(const u_char *value, size_t len)
{
  // do something
}

如何将 const 字符串转换为 u_char *?我相信我可以使用 sizeof() 函数获得 size_t。

非常感谢您的帮助。

【问题讨论】:

  • ucharu_char有什么区别,都是unsigned char的类型别名?
  • 对不起,我指的是 u_char 而不是 uchar。我已经编辑了代码。我不相信有 uchar 这样的东西。
  • @user1314238:标准 C++ 中没有 u_char 这样的东西。 u_char 类型到底是什么?

标签: c++ string pointers char


【解决方案1】:

使用c_str() 完成从字符串到char* 的转换。

关于u_char 转换,我认为没有什么不同。

这将对您有所帮助:MSDN string converison

【讨论】:

  • 好的,谢谢! 1 分钟前,我在查看字符串 api 时发现了这一点。另外,我需要将结果类型转换为 (u_char *)
【解决方案2】:

您可以使用c_str() 函数获得 std::string 的 c 样式字符串表示。只需致电bar((u_char)value.c_str(),value.length())。签名对于 c 风格的字符串应该无关紧要。

【讨论】:

  • 这是不正确的,因为bar 需要u_char const*,而不是u_char
  • 抱歉,我错误地认为u_charunsigned char 相同
【解决方案3】:

bar 可以这样调用(假设u_char 是某种char):

bar(reinterpret_cast<u_char const*>(value.c_str()), value.size())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-10
    • 2019-01-05
    • 2010-12-10
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多