首页 文章

转换void *(char * without \ 0)到std :: string

提问于
浏览
0

我需要将const void *(指向不带'/ 0'的c-string)转换为std :: string .

我有功能“功能”:

void function(const void* ptr, size_t size);

有一个电话:

...
std::string x("abcd");
function(x.data(), x.size());
...

如何在'function'中将第一个参数更改为std :: string?

(我知道它看起来很奇怪 . 我写了一个简单的例子 . 我想问一下转换 . )

2 回答

  • 3

    键入 void* 并将两个值传递给 std::string 构造函数:

    void function(const void* ptr, size_t size)
    {
        std::string s(static_cast<const char*>(ptr), size);
        ...
    }
    
  • 8

    “如何在'function'中将第一个参数更改为std :: string?”

    void function(const void* ptr, size_t size) {
        std::string str((const char*)ptr,size);
    }
    

    应该管用 .

相关问题