martes, 2 de junio de 2026

Eliminar un carácter x de una cadena introducido por teclado en C++

Código del ejercicio:

#include <iostream>
#include <clocale>
#include <string>

using namespace std;

int main()
{
    setlocale(LC_CTYPE, "Spanish");
    int i = 0, sw = 0;
    string aux = "", s;
    char e;
    cout<<"Ingresar texto: "; getline(cin, s);
    cout<<"Ingresar carácter: "; cin>>e;
    while(i < s.length()){
        if(s[i] == e && sw == 0){
            sw = 1;
        }else{
            aux += s[i];
            sw = 0;
        }
        i++;
    }
    cout<<aux;
    return 0;
}

Definición de los códigos del ejercicio:

#include <iostream> --> significa flujo de entrada-salida estándar. Este archivo de encabezado contiene definiciones de objetos como cin, cout, cerr, etc.
#include <clocale> --> especificador de configuración regional.
#include <string> --> archivo de encabezado de cadena.
using namespace std; --> un espacio de nombres es una colección de nombres o identificadores relacionados (funciones, clases, variables) que ayudan a separar estos identificadores de identificadores similares en otros espacios de nombres o en el espacio de nombres global. Los identificadores de la biblioteca estándar de C++ se definen en un espacio de nombres llamado std.
int --> dato entero de 32 bits.
main() --> la función main() es el punto de entrada de cualquier programa C++. Es el punto en el que se inicia la ejecución del programa. Cuando se ejecuta un programa C++, el control de ejecución va directamente a la función main(). Cada programa C++ tiene una función main().
return 0; --> devolver 0 en la función principal significa que el programa se ejecutó correctamente.
setlocale(); --> sirve para configurar nuestro programa acorde a los parámetros locales de la computadora donde se ejecuta el programa, uno de estos parámetros es el idioma.
LC_CTYPE --> selecciona la categoría de clasificación de caracteres del entorno local.
setlocale(LC_CTYPE, "Spanish"); --> dentro de las comillas del segundo parámetro colocaremos la palabra "Spanish" para que así se utilicen los parámetros hispanos por defecto.
cout<<""; --> se utiliza para mostrar la salida al dispositivo de salida estándar, es decir, monitor.
cin>> --> se utiliza para aceptar la entrada del dispositivo de entrada estándar, es decir, el teclado.
char --> permiten almacenar dos o más caracteres a la vez en una sola variable, son muy útiles para guardar palabras o frases completas.
string --> dato de tipo cadena de texto.
getline() --> es una función integrada definida en el archivo de encabezado <string> que permite aceptar y leer cadenas de una y varias líneas del flujo de entrada.
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
length() --> devuelve la longitud de una cadena.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
&& --> el operador lógico AND ( && ) (conjunción lógica) para un conjunto de operandos booleanos será true si y solo si todos los operandos son true. De lo contrario será false.
+= --> el operador de asignación de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.

Explicación del Código:

Este programa solicita al usuario un texto y un carácter. Luego recorre la cadena y elimina la primera aparición del carácter indicado, mostrando finalmente la nueva cadena resultante.

Explicación paso a paso

Fragmento de código Explicación
#include <iostream> Permite utilizar las funciones de entrada y salida como cin y cout.
#include <clocale> Permite configurar el idioma para manejar caracteres especiales.
#include <string> Permite trabajar con cadenas de texto utilizando el tipo string.
using namespace std; Evita escribir std:: antes de cada elemento de la biblioteca estándar.
setlocale(LC_CTYPE, "Spanish"); Configura el programa para trabajar con caracteres propios del idioma español.
int i = 0, sw = 0; i sirve para recorrer la cadena carácter por carácter. sw es una bandera que indica si ya se eliminó el carácter buscado.
string aux = "", s; s almacena el texto ingresado. aux almacenará la nueva cadena sin el carácter eliminado.
char e; Guarda el carácter que el usuario desea eliminar.
getline(cin, s); Lee una línea completa de texto, incluyendo espacios.
cin >> e; Lee el carácter que se desea eliminar de la cadena.
while(i < s.length()) Recorre toda la cadena desde el primer hasta el último carácter.
if(s[i] == e && sw == 0) Comprueba si el carácter actual es igual al carácter que se desea eliminar y además verifica que todavía no se haya eliminado ninguno.
sw = 1; Marca que ya se encontró y eliminó la primera aparición del carácter.
aux += s[i]; Agrega el carácter actual a la nueva cadena cuando no debe eliminarse.
sw = 0; Permite que el programa continúe copiando normalmente los demás caracteres.
i++; Avanza a la siguiente posición de la cadena.
cout << aux; Muestra la cadena resultante después de eliminar el carácter.
return 0; Finaliza correctamente la ejecución del programa.

Ejemplo de ejecución

Ingresar texto: Programacion
Ingresar carácter: a

Salida:
Progrmacion

Conclusión

El programa recorre la cadena carácter por carácter. Cuando encuentra la primera aparición del carácter indicado por el usuario, no lo copia a la nueva cadena. Todos los demás caracteres se agregan normalmente a la cadena auxiliar. Finalmente se muestra el texto resultante.

No hay comentarios.:

Publicar un comentario

Pedir la edad y determinar si puede o no sacar licencia de conducir en C++

Código del ejercicio: #include <iostream> using namespace std ; int main () {     int edad;     cout<< "Ing...

Copyright ©2025 Ejercicios de programación. Todos los derechos reservados. ❤️