Programa para invertir una cadena

CBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a escribir un programa en C para invertir una cadena dada. El programa tomará la entrada del usuario, invertirá la cadena y mostrará el resultado en la consola. Este concepto se puede utilizar para comprobar si una cadena es un palíndromo, ya que una cadena palíndroma tendrá el mismo valor incluso después de invertirla.

Nota: Debe crear el archivo ~/project/main.c usted mismo para practicar la codificación y aprender a compilar y ejecutarlo utilizando gcc.

cd ~/project
## crear main.c
touch main.c
## compilar main.c
gcc main.c -o main
## ejecutar main
./main

Declarar variables y leer la entrada del usuario

#include <stdio.h>
#include <string.h>

int main() {
   char str[1000], rev[1000];
   int i, j, count = 0;

   printf("Enter a string: ");
   scanf("%s", str);

En este paso, declaramos dos arrays de caracteres str y rev, y tres variables enteras i, j y count. str se utiliza para almacenar la cadena original ingresada por el usuario y rev se utiliza para almacenar la cadena invertida. count se utiliza para llevar un registro de la longitud de la cadena. Luego, solicitamos al usuario que ingrese una cadena utilizando printf y la leemos utilizando scanf.

Calcular la longitud de la cadena

while (str[count]!= '\0') {
   count++;
}
j = count - 1;

En este paso, utilizamos un bucle while para recorrer la cadena original hasta que se alcanza un carácter nulo \0. En cada iteración, incrementamos la variable count para contar el número de caracteres en la cadena. Luego, asignamos el valor de count - 1 a j porque los arrays empiezan en el índice 0 y queremos que j sea el índice del último carácter en la cadena original.

Invertir la cadena

for (i = 0; i < count; i++) {
   rev[i] = str[j];
   j--;
}
printf("Reversed string: %s\n", rev);

En este paso, utilizamos un bucle for para iterar a través de la cadena original. En cada iteración, asignamos el carácter en el índice j de la cadena original al índice correspondiente i en la cadena invertida. Luego, decrementamos j y repetimos el proceso hasta que hayamos invertido toda la cadena. Finalmente, mostramos la cadena invertida en la consola utilizando printf.

Código completo

#include <stdio.h>
#include <string.h>

int main() {
   char str[1000], rev[1000];
   int i, j, count = 0;

   printf("Enter a string: ");
   scanf("%s", str);

   while (str[count]!= '\0') {
      count++;
   }
   j = count - 1;

   for (i = 0; i < count; i++) {
      rev[i] = str[j];
      j--;
   }
   printf("Reversed string: %s\n", rev);

   return 0;
}

Resumen

En este laboratorio, aprendiste cómo escribir un programa en C para invertir una cadena dada. Aprendiste cómo calcular la longitud de una cadena utilizando un bucle while y cómo invertir una cadena utilizando un bucle for y una variable de índice. Escribir programas para manipular cadenas es una habilidad importante en la programación en C, y al dominarla, puedes realizar muchas tareas útiles.