gpt4 book ai didi

c++ - 将 std::string 转换为具有尾随或前导 '\0' 的 LPCSTR

转载 作者:太空狗 更新时间:2023-10-29 23:29:08 26 4
gpt4 key购买 nike

如何在保留 '\0' 字符的同时将 std::string 转换为 LPCSTR?

我想在 OPENFILENAME.lpstrFilter 上使用结果,它要求过滤器包含“\0”作为分隔符。

std::string.c_str() 似乎剥离和修剪 '\0'

提前致谢!

==========================

(如何正确地在回复中添加评论,例如在论坛中回复帖子?)

阅读您的评论后,我继续仔细检查了这个片段:

std::string filter = "Terrain Configuration (*.tcfg)\0*.tcfg\0\0";
const char* f1 = "Terrain Configuration (*.tcfg)\0*.tcfg\0\0";
const char* f2 = filter.c_str();
for(int i = 0; i < 50; i++)
{
char c1 = *(f1 + i); // works
char c2 = *(f2 + i); // doesn't work. beyond the first \0, it's garbage.
}

我是否误解了 c_str() 或 LPCSTR 的工作原理?

最佳答案

C_STR 不会去除 NUL 字符。该错误可能与您构建 STD::string 的方式有关。

关于c++ - 将 std::string 转换为具有尾随或前导 '\0' 的 LPCSTR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3891145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com