Si la matriz fue terminada en nulo esto sería bastante sencillo:copia no terminada en nulo matriz de caracteres sin signo a std :: string
unsigned char u_array[4] = { 'a', 's', 'd', '\0' };
std::string str = reinterpret_cast<char*>(u_array);
std::cout << "-> " << str << std::endl;
Sin embargo, me pregunto ¿cuál es la forma más adecuada de copiar un matriz de caracteres no terminada en nulo sin signo, como el siguiente:
unsigned char u_array[4] = { 'a', 's', 'd', 'f' };
en un std::string
.
¿Hay alguna manera de hacerlo sin iterar sobre matriz de caracteres sin signo?
Gracias a todos.
Convirtiendo 'unsigned char *' en 'char *' aquí, tienes que hacer 'reinterpret_cast'. –
@VladLazarenko: Pero no quiero hacer esa conversión. –
@Charles: Entonces su código no se compilará a menos que cambie el tipo predeterminado para char a unsigned en la configuración del compilador;) –