En este artículo, nos centraremos en las diferentes formas de convertir una cadena en una matriz de caracteres y una matriz de caracteres en una cadena en C++ . Al trabajar con datos de cadena, es posible que necesitemos convertir los elementos de datos de cadena en una matriz de caracteres y viceversa. Este tutorial te ayudará a resolver exactamente eso.
Convertir una cadena en una matriz de caracteres en C++
C++ nos proporciona las siguientes técnicas para convertir una cadena en una matriz de caracteres:
- Uso de las funciones c_str() y strcpy()
- Usando un bucle for
1. La función c_str() y strcpy() en C++
La función C++ c_str()junto con strcpy()la función String de C++ se pueden utilizar para convertir una cadena en una matriz de caracteres fácilmente.
El método c_str() representa la secuencia de caracteres de una matriz de cadenas seguida de un carácter nulo (‘’) . Devuelve un puntero nulo a la cadena.
Sintaxis:
string-name.c_str();
- Primero, usamos el método c_str() para obtener todos los caracteres de la cadena junto con un carácter nulo final.
- Además, declaramos una matriz vacía de tipo char para almacenar el resultado, es decir, el resultado de la conversión de una cadena a una matriz de caracteres.
- Finalmente, utilizamos el método strcpy() para copiar la secuencia de caracteres generada por el método c_str() a la matriz de caracteres vacía.
Ejemplo:
#include bits/stdc++.h using namespace std; int main() { string str = "";cout"Enter the string:n";cinstr;char arr[str.length() + 1]; strcpy(arr, str.c_str()); cout"String to char array conversion:n";for (int i = 0; i str.length(); i++) cout arr[i]; return 0; }
Producción:
Enter the string:JournalDevString to char array conversion:JournalDev
2. Conversión de cadena a matriz de caracteres en C++ mediante bucle for
Para la conversión de una matriz de caracteres en una cadena, podemos utilizar bucles for de C++ con facilidad.
- Inicialmente, creamos una matriz vacía de tipo char
- Después de esto, iteramos a través de la cadena de entrada.
- Mientras iteramos, almacenamos los caracteres en la matriz de caracteres.
Ejemplo:
#include bits/stdc++.h using namespace std; int main() { string str = "";cout"Enter the string:n";cinstr;char arr[str.length() + 1]; cout"String to char array conversion:n"; for (int x = 0; x sizeof(arr); x++) { arr[x] = str[x]; cout arr[x]; } return 0; }
Producción:
Enter the string:JournalDevString to char array conversion:JournalDev
Convertir una matriz de caracteres en una cadena en C++
Las técnicas mencionadas se pueden utilizar para convertir una matriz de caracteres en una cadena en C++:
- El operador ‘+’
- Operador ‘=’ sobrecargado en C++
- Constructor incorporado de C++
1. Operador ‘+’ de C++
C++ nos permite '+' operatorconcatenar o agregar elementos de datos a una variable.
- Creamos una nueva cadena vacía para almacenar el resultado.
- Continuando, utilizamos un bucle for para recorrer la matriz de caracteres de entrada.
- En el proceso de recorrer la matriz, utilizamos el operador ‘+’ para concatenar los caracteres a la cadena.
Ejemplo:
#include bits/stdc++.h using namespace std; int main() { char arr[] = { 'J', 'O', 'U', 'R', 'N', 'A', 'L', 'D', 'E', 'V' }; int size_arr = sizeof(arr) / sizeof(char); string str = ""; for (int x = 0; x size_arr; x++) { str = str + arr[x]; } cout"Converted char array to string:n";cout str endl; return 0; }
Producción:
Converted char array to string:JOURNALDEV
2. Operador ‘=’ sobrecargado en C++
C++ tiene el concepto de sobrecarga que hace que un operador realice otras operaciones además de la operación básica o predeterminada.
- Inicialmente, creamos una nueva cadena vacía.
- Usamos la función sobrecargada
'=' operatorpara almacenar los elementos de datos carácter por carácter en la cadena vacía recién creada.
Ejemplo:
#include bits/stdc++.h using namespace std; int main() { char arr[] = { 'J', 'O', 'U', 'R', 'N', 'A', 'L', 'D', 'E', 'V' }; int size_arr = sizeof(arr) / sizeof(char); string str = ""; str = arr;cout"Converted char array to string:n";cout str endl; return 0; }
Producción:
Converted char array to string:JOURNALDEV
3. Constructor incorporado de cadena de C++
En el contexto de la conversión de una matriz de caracteres a una cadena, podemos utilizar el constructor de cadenas de C++ para lo mismo.
Sintaxis:
string string-name(char array-name);
Este constructor toma una secuencia de caracteres terminada en un carácter nulo como parámetro de entrada.
Nota : Esto constructor string string()solo se puede usar en el momento de la declaración de cadena en todo el programa.
Ejemplo:
#include bits/stdc++.h using namespace std; int main() { char arr[] = { 'J', 'O', 'U', 'R', 'N', 'A', 'L', 'D', 'E', 'V' }; int size_arr = sizeof(arr) / sizeof(char); string str(arr);cout"Converted char array to string:n";cout str endl; return 0; }
Producción:
Converted char array to string:JOURNALDEV
Conclusión
En este artículo, hemos comprendido varias técnicas para convertir cadenas en matrices de caracteres y viceversa en C++.
Referencias
- Método c_str() de C++