我正在使用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*).