lunes, 7 de abril de 2025

Eliminar un carácter x de una cadena introducido por teclado en Windows Forms C Sharp

Código del ejercicio:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Ejercicio
{
    public partial class frmEjercicio : Form
    {
        public frmEjercicio()
        {
            InitializeComponent();
        }
        private void btnMostrar_Click_1(object sender, EventArgs e)
        {
            int i = 0, sw = 0; string aux = "", s;
            s = txtTexto.Text;
            char c = char.Parse(txtCaracter.Text);
            while(i < s.Length)
            {
                if (s[i] == c && sw == 0)
                {
                    sw = 1;
                }
                else
                {
                    aux += s[i];
                    sw = 0;
                }
                i++;
            }
            txtResultado.Text = aux;
        }

        private void btnLimpiar_Click(object sender, EventArgs e)
        {
            txtTexto.Clear();
            txtCaracter.Clear();
            txtResultado.Clear();
            txtTexto.Focus();
        }
    }
}

Definición de los códigos del ejercicio:

int --> dato entero de 32 bits.
string --> dato de tipo cadena de texto.
char --> se usa para contener un único carácter unicode (con codificación Unicode de 16 bits).
Parse() --> se utiliza para convertir una representación de cadena de un número en un entero equivalente con signo de 16/32/64 bits.
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
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 menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
Length --> obtiene el número de caracteres del objeto String actual.
== --> 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.
Clear() --> borra todo el contenido del cuadro de texto.
Focus() --> establece el foco de entrada.

Explicación del código:

Objetivo: Eliminar un carácter x de una cadena introducida por el usuario.

¿Qué hace este programa?

El usuario escribe una frase en una caja de texto (txtTexto) y un carácter a eliminar en otra (txtCaracter). Al hacer clic en el botón "Mostrar", se genera una nueva cadena sin ese carácter y se muestra en txtResultado.

Explicación del código paso a paso:

1. Espacios de nombres y definición de clase:

  • using System;: Funciones básicas de C#.
  • using System.Windows.Forms;: Para manejar los formularios.
  • InitializeComponent();: Inicializa el formulario.

2. Botón Mostrar (btnMostrar_Click_1)


int i = 0, sw = 0;
string aux = "", s;
s = txtTexto.Text;
char c = char.Parse(txtCaracter.Text);

while(i < s.Length)
{
    if (s[i] == c && sw == 0)
    {
        sw = 1;
    }
    else
    {
        aux += s[i];
        sw = 0;
    }
    i++;
}

txtResultado.Text = aux;
    

¿Qué hace?

  • Lee el texto y el carácter a eliminar.
  • Recorre la cadena con while.
  • Elimina solo la primera aparición del carácter especificado.
  • Muestra el resultado en txtResultado.

3. Botón Limpiar (btnLimpiar_Click)


txtTexto.Clear();
txtCaracter.Clear();
txtResultado.Clear();
txtTexto.Focus();
    

¿Qué hace? Limpia todas las cajas de texto y vuelve a enfocar el cursor en txtTexto.

¿Cómo mejorarlo?

Para eliminar todas las apariciones del carácter, puedes usar este código alternativo:


foreach (char ch in s)
{
    if (ch != c)
        aux += ch;
}
    

No hay comentarios.:

Publicar un comentario

Ingresar un número entero y mostrar todos los números impares hasta el número ingresado en Python

Código del ejercicio: Con ciclo while numero = int ( input ( "Ingresar un número: " )) if numero ...

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