Cómo invertir una cadena en C

How Reverse String C



En la codificación de cadenas, la inversión de cadenas es un tema crucial. También existen varios métodos para invertir una cadena, cada uno de los cuales tiene una lógica diferente. Este artículo le mostrará cómo invertir correctamente una cadena para usar varios enfoques y razonamientos distintos con y sin requerir funciones preestablecidas. Siempre que se aplique la inversión de una técnica de cadena en una cadena de entrada única en particular, el texto que un consumidor proporcionaría en un orden específico se invertirá por completo. En el ejemplo siguiente, se han empleado diferentes alternativas de invertir una cuerda con C.

Al implementar esta guía, hemos estado trabajando en el sistema Linux Ubuntu 20.04 configurado en Virtual Box. Mientras trabajábamos en un sistema Linux, solíamos hacer la mayoría de nuestras instalaciones y consultas en el shell del terminal. Por lo tanto, abra el shell del terminal con un acceso directo Ctrl + Alt + T o búsquelo a través de una barra de búsqueda de aplicaciones en el área de Actividad del escritorio de Ubuntu. Es necesario actualizar su sistema primero a través de la consulta de actualización de apt. Le pedirá la contraseña de usuario actual para ejecutar la actualización. Por lo tanto, agregue una contraseña y presione el botón Enter.







actualización de $ sudo apt



Como hemos estado usando el lenguaje de programación C para elaborar el concepto de invertir cadenas en el sistema Ubuntu 20.04, uno debería tener un compilador C instalado en su sistema Ubuntu. Por lo tanto, asegúrese de instalar el compilador GCC en su sistema a través de la siguiente consulta.



$ sudo apt install gcc

Ejemplo 01: Uso de bucle for

Después de la instalación y configuración del compilador GCC y la actualización del paquete apt, se vuelve a crear un nuevo archivo. Este archivo debe ser de tipo C; por lo tanto, use el comando táctil para crear un archivo new.c como se muestra a continuación. Este archivo se utilizará en nuestro código a partir de ahora durante la implementación de programas de cadena inversa.





$ toque nuevo.c

Ahora puede abrir este archivo para editarlo o codificarlo con un editor Nano integrado en su sistema Linux Ubuntu 20.04. Por lo tanto, pruebe las instrucciones a continuación en su shell para hacerlo.



$ nano nuevo.c

El archivo de tipo C recién creado se ha abierto en el GNU Nano Editor del sistema Ubuntu 20.04. Tienes que escribir un script en C en él, como se muestra en la imagen de captura de pantalla a continuación. Permítanos desarrollar este código para su mejor comprensión. Al comienzo de un código, hemos incluido dos bibliotecas. La biblioteca stdio.h se ha usado para tomar entradas y mostrar las salidas, y la otra biblioteca string.h se ha usado para usar todo tipo de cadenas en nuestro código. Todo el trabajo de invertir una cadena se realizará en el método main () de un código C. Hemos declarado una cadena de caracteres del tipo str que tiene un tamaño de 50. Esto significa que una cadena con más de 50 caracteres no puede incluirse en este código. Después de eso, hemos declarado dos variables de tipo entero. La variable l se ha utilizado para recopilar la longitud de una cadena str y la variable I se utilizará como inicializador en el bucle for. Luego, hemos usado una declaración printf para imprimir un texto en el shell Enter string, diciéndole al usuario que agregue un valor a una variable de cadena. El método scanf () se ha utilizado para ingresar el usuario en tiempo de ejecución y guardar ese valor en una cadena str. La función strlen () se ha utilizado para verificar la longitud de una cadena str que ha sido agregada por un usuario en tiempo de ejecución y guardarla en una variable l ’. Luego inicializamos un bucle for para invertir la cadena str. Puede ver que el inicializador I 'está tomando el valor de una variable l para invertir la dirección de una cadena. Luego imprime los caracteres de una cadena str ’uno por uno al revés. En el último, se ha terminado el método principal. Guarde este archivo usando Ctrl + S y salga de él con Ctrl + X.

Ahora es el momento de compilar el código y verificar su salida. Por lo tanto, la compilación se ha realizado mediante la consulta gcc que se indica a continuación con el nombre de un archivo new.c.

$ gcc nuevo.c

A medida que la compilación se realiza correctamente, significa que no hay ningún error en nuestro código. Ejecutemos nuestro archivo mediante una consulta .out en el shell de la siguiente manera:

$ ./a.fuera

El proceso de ejecución le pedirá al usuario que agregue una cadena. Agregamos I-Am-Aqsa-Yasin y presionamos Enter. Puede ver que devuelve el reverso de una cadena en la siguiente línea.

Ejemplo 02: Uso de intercambio

En este ejemplo, usaremos el método de intercambio para invertir el orden de una cadena. Por lo tanto, abra el archivo new.c una vez más usando el editor nano de la siguiente manera:

$ nano nuevo.c

Ahora el archivo se ha abierto en el editor GNU nano; necesitamos actualizar el archivo de código con el script que se muestra a continuación en la captura de pantalla. Hemos incluido el archivo de encabezado de entrada y salida estándar en nuestro código primero usando una palabra clave #include. Hemos definido un método Reverse () según el uso de la técnica de intercambio. Hemos inicializado tres variables de tipo entero new, I y swap. El primer ciclo for se utiliza para comprobar si la cadena s está vacía o no. El siguiente bucle for se usa para la iteración, y en su cuerpo, hemos intercambiado los valores usando variables nuevas y de intercambio. Vale la pena señalar que invertir una cadena de n longitudes solo requiere n / 2 rondas. Una vez que se hayan intercambiado las cadenas, tendrá que volver a realizar un bucle para mostrar la cadena invertida, lo que hacemos dentro de nuestra aplicación utilizando un tercer bucle for. La función Reverse () debe llamarse desde el interior del programa principal. Ha indicado lo que realiza su software con printf dentro del contexto de main (). Después de eso, usó scanf () para obtener la entrada del usuario e invocó el método Reverse (). Ahora guarde el archivo nuevamente usando Ctrl + S y salga del editor nano con el atajo Ctrl + X y regrese al shell terminal.

Primero compile el código mediante una consulta gcc como se muestra a continuación.

$ gcc nuevo.c

Ahora ejecute el archivo de código usando la misma instrucción ./a.out.

$ ./a.fuera

Le pedirá que ingrese el valor de la cadena. Hemos agregado AqsaYasin y obtuvimos su reverso.

Ejemplo 03: uso de recursividad

En este ejemplo, usaremos la recursividad para revertir una cadena agregada por un usuario. Por lo tanto, abra el archivo nuevamente.

$ nano nuevo.c

Este programa imprime Ingrese una oración: A continuación, se utiliza un método Reverse (). La letra inicial ingresada por un usuario se guarda en c a través de este método. Reverse () se ejecuta de nuevo si el argumento es diferente a n (nueva línea). Este procedimiento continúa hasta que el usuario presiona la tecla Enter. Siempre que el usuario presiona Intro, el método Reverse () imprime el texto en orden inverso. Guarde y cierre el archivo.

Primero compile el código y luego ejecútelo usando los comandos anteriores de la siguiente manera:

$ gcc nuevo.c

$ ./a.fuera

Puede ver que toma la entrada de un usuario como una oración de cadena completa y luego invierte el orden de esa oración.

Conclusión:

Finalmente, hemos hecho tres ejemplos para explicar cómo revertir una entrada de tipo cadena con diferentes métodos, por ejemplo, usando el bucle for, usando la recursividad y usando swap.