Я получаю переменные среды в win32 с помощью GetEnvironmentStrings ()
. Он возвращает ] char *
.
Я хочу найти в этой строке (указатель char) конкретную переменную среды (да, я знаю, что могу использовать GetEnvironmentVariable ()
, но я делаю это так, потому что я также хочу напечатать все переменные среды на консоли - я просто возился.)
Итак, я решил преобразовать char *
в std :: string и использовать на нем find ( Я знаю, что могу также использовать функцию поиска c_string, но меня больше беспокоит попытка скопировать char *
в std :: string
). Но следующий код, похоже, не копирует весь char *
в std :: string
(это заставляет меня думать, что в [1112442] есть символ \ 0
9] char * , но это еще не конец.
char* a = GetEnvironmentStrings();
string b = string(a, sizeof(a));
printf( "%s", b.c_str() ); // prints =::=
Есть ли способ скопировать char *
в std :: string
(я знаю, что могу используйте strcpy ()
, чтобы скопировать const char *
в строку, но не char *
).