小编Mac*_*ack的帖子

环境变量在char*中如何将它转换为std :: string

我正在使用win32检索环境变量GetEnvironmentStrings().它返回一个char*.

我想搜索这个字符串(字符串指针)的特定环境变量(是的,我知道我可以使用,GetEnvironmentVariable()但我这样做,因为我也想在控制台上打印所有的环境变量 - 我只是摆弄) .

所以我想我会转换char*为std :: string并使用find(我知道我也可以使用c_string find函数,但我更关心的是尝试将a复制char*到a中std::string).但是下面的代码似乎并没有将所有内容复制char*std::string(它让我觉得有一个\0字符,char*但它实际上并不是结束).

char* a = GetEnvironmentStrings();
string b = string(a, sizeof(a));
printf( "%s", b.c_str() );  // prints =::= 
Run Code Online (Sandbox Code Playgroud)

有没有办法将a复制char*到a std::string(我知道我可以strcpy()用来复制const char*到字符串而不是a char*).

c++ winapi cstring

6
推荐指数
1
解决办法
2341
查看次数

标签 统计

c++ ×1

cstring ×1

winapi ×1