Comprobar si una cadena es un palíndromo

C++Beginner
Practicar Ahora

Introducción

En este laboratorio, aprenderás a escribir un programa en C++ que verifique si una cadena dada es un palíndromo o no. Un palíndromo es una cadena que es igual a su versión invertida. Para comprobar si una cadena es un palíndromo, invertiremos la cadena dada y la compararemos con la original. Si ambas cadenas son iguales, la cadena dada es un palíndromo, de lo contrario, no lo es.

Incluir las bibliotecas necesarias y definir la función main()

Primero, incluiremos las bibliotecas necesarias y definiremos la función main().

#include <iostream>
#include <string.h>

using namespace std;

int main() {
  // código aquí
  return 0;
}

Obtener la cadena de entrada del usuario

A continuación, obtendremos la cadena de entrada del usuario y la almacenaremos en un arreglo de caracteres.

char inputStr[100];
cout << "Ingrese una cadena: ";
cin >> inputStr;

Obtener la longitud de la cadena de entrada

Calcularemos la longitud de la cadena de entrada utilizando la función strlen().

int strLength = strlen(inputStr);

Crear una matriz para la cadena invertida

A continuación, crearemos un arreglo para la cadena invertida.

char reverseStr[strLength];

Invertir la cadena de entrada

Ahora invertiremos la cadena de entrada y la almacenaremos en el arreglo recién creado para la cadena invertida.

for(int i = 0; i < strLength; i++) {
    reverseStr[i] = inputStr[strLength - 1 - i];
}

Comparar las cadenas original y invertida

Finalmente, compararemos la cadena original y la cadena invertida para comprobar si la cadena de entrada es un palíndromo o no.

if(strcmp(inputStr, reverseStr) == 0) {
    cout << inputStr << " es un palíndromo." << endl;
} else {
    cout << inputStr << " no es un palíndromo." << endl;
}

Código completo

#include <iostream>
#include <string.h>

using namespace std;

int main() {
    char inputStr[100];
    cout << "Ingrese una cadena: ";
    cin >> inputStr;

    int strLength = strlen(inputStr);
    char reverseStr[strLength];

    for(int i = 0; i < strLength; i++) {
        reverseStr[i] = inputStr[strLength - 1 - i];
    }

    if(strcmp(inputStr, reverseStr) == 0) {
        cout << inputStr << " es un palíndromo." << endl;
    } else {
        cout << inputStr << " no es un palíndromo." << endl;
    }

    return 0;
}

Resumen

En este laboratorio, aprendiste cómo escribir un programa en C++ que comprueba si una cadena dada es un palíndromo o no. Ahora puedes usar este programa para comprobar rápidamente si cualquier cadena es un palíndromo o no.