La mayoría de nosotros debemos haber encontrado errores como "No se puede convertir std :: string a char [] o char* Tipo de datos."Aprenderemos a traducir una cadena a una matriz de personajes en este artículo. Revisemos algunos de ellos uno a la vez.
Todos estos nuevos métodos nos ayudarán a explicar la nueva técnica para hacer lo mismo, pero con un enfoque diferente. Va a ampliar nuestro conocimiento para ver problemas desde diferentes ángulos y realizar y utilizar diferentes enfoques para resolver ese problema desde cada perspectiva.
Para alterar y modificar cadenas y caracteres, C ++ ofrece técnicas fáciles y efectivas. Revisaremos algunas de las características de manipulación de cadenas más básicas y algunos ejemplos de cómo usarlas. También muestra cómo usar algunas de las instalaciones de la biblioteca Boost para extender las funcionalidades de cadena y caracteres de C ++.
Al principio, creemos un archivo en nuestro terminal usando el siguiente comando:
$ nano dev.CPP
El comando anterior abrirá un archivo C ++ para su uso en el terminal de Alpine Linux 3.12.0, y ahora podemos comenzar a implementar nuestros ejemplos.
Ejemplo 1:
Uno de los primeros métodos que utilizaremos en nuestro primer ejemplo es copiar los datos de la cadena en una matriz de char. Copiar datos de cadena a Char se puede realizar utilizando las funciones de la biblioteca CString C_str () y strcpy ().
Básicamente, para devolver el puntero a una matriz que contiene una secuencia de caracteres con terminación nula que representa el valor actual de la cadena, se utiliza c_str ().
No se realizan cambios en la cadena si se lanza una excepción. Usando la función strcpy (), copiamos de cadena a char cuando se requiere para acceder o encontrar elementos individuales. Una vez que lo copiamos, podemos usarlo como una matriz. La longitud de la cadena no debe ser menor que la longitud de la matriz de char.
En este ejemplo, primero pondremos nuestras bibliotecas requeridas en el encabezado; En nuestro caso, requerimos bibliotecas iostream y CString. Tenemos la intención de convertir nuestra cadena de "desarrollador" en char "d e v e l o p e r."
Hemos inicializado una cadena s = "desarrollador", guardamos la longitud en un nombre entero "n", y también hemos declarado una matriz de char en la que guardaremos nuestros caracteres de carbón convertido de la cadena. Usando strcpy (), copiamos los datos de la cadena "s" y los colocamos en la matriz de char.
Ahora que hemos convertido o copiado con éxito la cadena en una matriz de char, usaremos para mostrar o imprimir los caracteres de char para asegurarnos de obtener los mismos caracteres.
Vamos a compilar un programa C ++ utilizando los siguientes comandos.
$ g ++ -o dev dev.CPP
Para verificar si nuestra matriz Char ha recibido los datos copiados de la cadena "S" con éxito o no, tendremos que ejecutar nuestro programa utilizando el siguiente comando que se muestra a continuación:
ps ./desarrollo
La salida del siguiente programa se da a continuación; Como podemos ver, hemos copiado y convertido con éxito nuestras cadenas a char usando la función strcpy ().
Ejemplo # 2
Este ejemplo es para aquellos que se sienten incómodos con el primer ejemplo y quieren ampliar su conocimiento y práctica. Este es quizás el enfoque más factible y efectivo. La posición del primer carácter de la cadena se puede asignar directamente a un puntero a Char. Sin embargo, si su razonamiento requiere un duplicado de la cadena, este debería ser el método de elección.
En el ejemplo anterior, no estamos utilizando ninguna función de copia como strcpy (), pero eso no significa que lo estemos haciendo de manera difícil. Tenemos que pensar de manera inteligente.
Primero, tenemos que declarar e inicializar una matriz de puntero y hacer que sea un punto a una matriz. Tenemos nuestro objeto de cadena listo para convertirse en forma de STR ("Deloper"). Hemos asignado directamente el primer objeto de la cadena STR al puntero, que extraerá todos los demás objetos a lo largo.
Por ejemplo, si le damos "CharArray = & str [2]", obtendrá la letra "V" en el "desarrollador" e imprime todos los demás objetos, como "Veloper."La salida del siguiente programa se muestra a continuación; Como se puede ver, convirtimos con éxito nuestra cadena en Char utilizando apuntando directamente en lugar de la función strcpy ().
Ejemplo # 3
Este ejemplo es para las personas que buscan un buen ejemplo sin absolutamente ninguna función y una biblioteca incorporada para la conversión.
En el Ejemplo#3, vamos a usar un algoritmo simple donde vamos a seguir los pasos a continuación:
El objetivo es convertir cadenas a chars. Comenzaremos asignando un valor a la cadena STR que nos gustaría convertir a Char, que es el objetivo de nuestro programa. Vamos a usar para bucle y hacer que se ejecute al tamaño de la longitud de la cadena.
En este método, iteramos a través de cada carácter de la cadena dada y los asignamos a todos al índice respectivo de la matriz de Char. En el bucle for, colocamos cada objeto de cadena es igual al valor de objeto de la matriz de char, que llena automáticamente la matriz de char con la cadena.
El resultado del siguiente programa se muestra a continuación, que se puede ver. Utilizamos un bucle simple para convertir con éxito una cadena a char.
Ejemplo #4
El cuarto ejemplo es sobre la función de copia simple () que también se puede utilizar para convertir la cadena en caracteres. No hay nada diferente en este programa de otros métodos; Solo tenemos que usar una función simple de copy () que toma tres argumentos: comenzar el final, nombre de la matriz.
Por ejemplo, debemos copiar cadena STR al nombre de la matriz del personaje CharArray. Podemos usar la siguiente sintaxis:
# Copia (STR.begin (), str.end (), Chararray)
Después de ejecutar la siguiente función con la sintaxis apropiada, podemos imprimir la siguiente matriz en la que hemos transferido la siguiente cadena.
Como resultado, tenemos la siguiente salida, lo que nos lleva a nuestro objetivo de convertir con éxito una cadena en una matriz de personajes.
Conclusión:
Al final, esperamos que pudiéramos hacerle caminar por algunos de los ejemplos en los que puede convertir la cadena a char de más de una forma. El artículo anterior discutió las múltiples técnicas para convertir una cadena en caracteres en Alpine Linux 3.12.0. Para lograr esto, revisamos cuatro técnicas diferentes que puede usar para convertir una cadena en caracteres en C ++ fácilmente. Esas tres técnicas diferentes fueron la función strcpy (), la función copy (), la iteración de bucle y el uso de punteros. Como resultado, estas explicaciones serán bastante útiles para cuando necesite convertir una cadena en caracteres en Alpine Linux 3.12.0 C++.