Convierta una array de bytes en una string en C/C++
Esta publicación discutirá cómo convertir una array de bytes en una string en C/C++.
1. Usando memcpy()
función
los memcpy()
función realiza una copia binaria de las arrays de Tipo POD (datos antiguos simples) como int, char, etc. Se puede usar para convertir una array de bytes en una cadena C, de la siguiente manera. Tenga en cuenta que las C-Strings terminan en NULL. Por lo tanto, no olvide asignar espacio para un byte NULL final.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <iostream> #include <cstring> int main() { unsigned char bytes[] = { 72, 101, 108, 108, 111 }; int n = sizeof(bytes); char chars[n + 1]; memcpy(chars, bytes, n); chars[n] = '\0'; // terminación nula de la string std::cout << chars; return 0; } |
Resultado:
Hello
2. Usando el constructor de strings
Para construir una cadena C++ a partir de una array de bytes, utilice el constructor de strings. el constructor string (const char* b, size_t n)
copia el primero n
caracteres de la array b
. El siguiente es un ejemplo simple que demuestra su uso.
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <iostream> #include <string> int main() { const char bytes[] = { 72, 101, 108, 108, 111 }; std::string s(bytes, sizeof(bytes)); std::cout << s; return 0; } |
Resultado:
Hello
Se trata de convertir una array de bytes en una string en C/C++.