Este artículo muestra cómo convertir una array de caracteres en una string en C++.
El std::string en c++ tiene muchas funciones incorporadas que hacen que la implementación sea mucho más fácil que manejar una array de caracteres. Por lo tanto, a menudo sería más fácil trabajar si convertimos una array de caracteres en una string.
Ejemplos:
Input: char s[] = { 'g', 'e', 'e', 'k', 's', 'f', 'o', 'r', 'g', 'e', 'e', 'k', 's' } ; Output: string s = "geeksforgeeks" ; Input: char s[] = { 'c', 'o', 'd', 'i', 'n', 'g' } ; Output: string s = "coding" ;
- Método 1:
Enfoque:- Obtenga la array de caracteres y su tamaño.
- Crea una string vacía.
- Iterar a través de la array de caracteres.
- A medida que itera, siga concatenando los caracteres que encontramos en la array de caracteres a la string.
- Devuelve la string.
A continuación se muestra la implementación del enfoque anterior.
C++
// Demonstrates conversion // from character array to string #include <bits/stdc++.h> using namespace std; // converts character array // to string and returns it string convertToString(char* a, int size) { int i; string s = ""; for (i = 0; i < size; i++) { s = s + a[i]; } return s; } // Driver code int main() { char a[] = { 'C', 'O', 'D', 'E' }; char b[] = "geeksforgeeks"; int a_size = sizeof(a) / sizeof(char); int b_size = sizeof(b) / sizeof(char); string s_a = convertToString(a, a_size); string s_b = convertToString(b, b_size); cout << s_a << endl; cout << s_b << endl; return 0; }
- Método 2:
std ::string tiene un constructor incorporado que hace el trabajo por nosotros. Este constructor toma una secuencia de caracteres terminada en nulo como entrada. Sin embargo, podemos usar este método solo en el momento de la declaración de la string y no se puede usar nuevamente para la misma string porque usa un constructor que solo se llama cuando declaramos una string.
Acercarse:- Obtenga la array de caracteres y su tamaño.
- Declare una string (es decir, un objeto de la clase de string) y, al hacerlo, proporcione la array de caracteres como parámetro para su constructor.
- Utilice la sintaxis: string string_name(character_array_name);
- Devuelve la string.
A continuación se muestra la implementación del enfoque anterior.
C++
// Demonstrates conversion // from character array to string #include <bits/stdc++.h> using namespace std; // uses the constructor in string class // to convert character array to string string convertToString(char* a) { string s(a); // we cannot use this technique again // to store something in s // because we use constructors // which are only called // when the string is declared. // Remove commented portion // to see for yourself /* char demo[] = "gfg"; s(demo); // compilation error */ return s; } // Driver code int main() { char a[] = { 'C', 'O', 'D', 'E' }; char b[] = "geeksforgeeks"; string s_a = convertToString(a); string s_b = convertToString(b); cout << s_a << endl; cout << s_b << endl; return 0; }
- Método 3:
otra forma de hacerlo sería usar un operador ‘=’ sobrecargado que también está disponible en C++ std::string .
Acercarse:- Obtenga la array de caracteres y su tamaño.
- Declarar una string.
- Utilice el operador sobrecargado ‘=’ para asignar los caracteres de la array de caracteres a la string.
- Devuelve la string.
A continuación se muestra la implementación del enfoque anterior.
C++
// Demonstrates conversion // from character array to string #include <bits/stdc++.h> using namespace std; // uses overloaded '=' operator from string class // to convert character array to string string convertToString(char* a) { string s = a; return s; } // Driver code int main() { char a[] = { 'C', 'O', 'D', 'E' }; char b[] = "geeksforgeeks"; string s_a = convertToString(a); string s_b = convertToString(b); cout << s_a << endl; cout << s_b << endl; return 0; }