相关疑难解决方法(0)

如何使用嵌入的null构造一个std :: string?

如果我想构造一个std :: string,其行如下:

std::string my_string("a\0b");
Run Code Online (Sandbox Code Playgroud)

我希望在结果字符串中有三个字符(a,null,b),我只得到一个.什么是正确的语法?

c++ null stdstring

82
推荐指数
7
解决办法
4万
查看次数

使用std :: string来保存二进制数据是否有效,以避免手动动态内存管理

注意base64_decodehttp://www.adp-gmbh.ch/cpp/common/base64.html

std::string base64_decode(std::string const& encoded_string)
Run Code Online (Sandbox Code Playgroud)

该函数假设返回byte array以指示二进制数据.但是,该功能正在返回std::string.我的猜测是,作者试图避免执行显式动态内存分配.

我尝试验证输出是否正确.

int main()
{
    unsigned char data[3];
    data[0] = 0; data[1] = 1; data[2] = 2;
    std::string encoded_string = base64_encode(data, 3);
    // AAEC
    std::cout << encoded_string << std::endl;


    std::string decoded_string = base64_decode(encoded_string);
    for (int i = 0; i < decoded_string.length(); i++) {
        // 0, 1, 2
        std::cout << (int)decoded_string.data()[i] << ", ";
    }
    std::cout << std::endl;
    getchar();
}
Run Code Online (Sandbox Code Playgroud)

解码输出是正确的.只是想确认一下std::string,保存二进制数据是否有效,避免手动动态内存管理.

std::string s;
s += (char)0; …
Run Code Online (Sandbox Code Playgroud)

c++

31
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×2

null ×1

stdstring ×1