usar resueltos que leer imprimir entero ejercicios convertir como caracteres cadenas cadena arreglo c++ string char arrays

c++ - resueltos - ¿Cómo convertir una matriz de caracteres en una cadena?



leer cadena de caracteres en c (4)

Convertir una string C ++ en una matriz de caracteres es bastante sencillo usando la función c_str de la cadena y luego c_str strcpy . Sin embargo, ¿cómo hacer lo contrario?

Tengo una matriz de caracteres como: char arr[ ] = "This is a test"; para convertir de nuevo a: string str = "This is a test .


Hay un pequeño problema perdido en las respuestas más votadas. Es decir, la matriz de caracteres puede contener 0. Si usaremos un constructor con un solo parámetro como se señaló anteriormente, perderemos algunos datos. La posible solución es:

cout << string("123/0 123") << endl; cout << string("123/0 123", 8) << endl;

La salida es:

123
123 123


La clase de string tiene un constructor que toma una cadena en C terminada en NULL:

char arr[ ] = "This is a test"; string str(arr); // You can also assign directly to a string. str = "This is another string"; // or str = arr;


Otra solución podría tener este aspecto,

char arr[] = "mom"; std::cout << "hi " << std::string(arr);

lo que evita el uso de una variable extra.


#include <stdio.h> #include <iostream> #include <stdlib.h> #include <string> using namespace std; int main () { char *tmp = (char *)malloc(128); int n=sprintf(tmp, "Hello from Chile."); string tmp_str = tmp; cout << *tmp << " : is a char array beginning with " <<n <<" chars long/n" << endl; cout << tmp_str << " : is a string with " <<n <<" chars long/n" << endl; free(tmp); return 0; }

AFUERA:

H : is a char array beginning with 17 chars long Hello from Chile. :is a string with 17 chars long