sábado, 16 de mayo de 2026

Encontrar la primera posición de un carácter x de una cadena 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(object sender, EventArgs e)
        {
            int i = 0, p = 0, sw = 0;
            string s = txtTexto.Text;
            char l = char.Parse(txtCaracter.Text);
            while(i < s.Length && sw == 0)
            {
                if (s[i] == l)
                {
                    p = i;
                    sw = 1;
                }
                i++;
            }
            txtResultado.Text = $"El carácter {l} está en la posición {p}";
        }

        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 desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
== --> 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 incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
$"{}" --> interpolación de cadenas proporciona una sintaxis conveniente para concatenar varios valores para formar una cadena.
Clear() --> borra todo el contenido del cuadro de texto.
Focus() --> establece el foco de entrada.

Explicación del Código:

¿Qué hace el programa?

Este programa desarrollado en Windows Forms permite ingresar una cadena de texto y un carácter. Luego busca la primera posición donde aparece ese carácter dentro de la cadena y finalmente muestra el resultado en pantalla.

Librerías del programa

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;

Estas librerías permiten utilizar funciones básicas de C# y crear interfaces gráficas utilizando Windows Forms.

Clase principal

public partial class frmEjercicio : Form

Se crea una clase llamada frmEjercicio, la cual representa el formulario principal de la aplicación.

Constructor del formulario

public frmEjercicio()
{
    InitializeComponent();
}

El constructor inicializa todos los componentes visuales del formulario, como botones, cajas de texto y etiquetas.

Evento del botón Mostrar

private void btnMostrar_Click(object sender, EventArgs e)

Este método se ejecuta cuando el usuario presiona el botón Mostrar.

Variables utilizadas

int i = 0, p = 0, sw = 0;
  • i: controla la posición del recorrido.
  • p: almacena la posición encontrada.
  • sw: sirve como interruptor para detener la búsqueda.

Captura de datos

string s = txtTexto.Text;
char l = char.Parse(txtCaracter.Text);
  • s: guarda el texto ingresado.
  • l: guarda el carácter que se desea buscar.

Recorrido de la cadena

while(i < s.Length && sw == 0)

El ciclo while recorre la cadena carácter por carácter mientras no se llegue al final y el carácter aún no haya sido encontrado.

Comparación del carácter

if (s[i] == l)

Aquí se compara cada carácter de la cadena con el carácter ingresado por el usuario.

Guardar posición encontrada

p = i;
sw = 1;
  • p = i: guarda la posición donde se encontró el carácter.
  • sw = 1: detiene el recorrido de la cadena.

Incrementar contador

i++;

Incrementa el valor de i para pasar al siguiente carácter de la cadena.

Mostrar resultado

txtResultado.Text = $"El carácter {l} está en la posición {p}";

Muestra el resultado indicando en qué posición se encuentra el carácter.

Botón Limpiar

private void btnLimpiar_Click(object sender, EventArgs e)

Este método limpia las cajas de texto del formulario.

txtTexto.Clear();
txtCaracter.Clear();
txtResultado.Clear();
txtTexto.Focus();
  • Clear(): elimina el contenido de las cajas de texto.
  • Focus(): coloca el cursor nuevamente en el campo principal.

Código del ejercicio: Otra forma de hacer

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(object sender, EventArgs e)
        {
            int i = 0;
            string s = txtTexto.Text;
            char x = char.Parse(txtCaracter.Text);
            while(i < s.Length)
            {
                if (s[i] != x)
                {
                    i++;
                }
                else
                {
                    txtResultado.Text = $"El carácter {x} está en la posición {i}";
                    i = s.Length;
                }
            }
        }

        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 desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
== --> 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 incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
$"{}" --> interpolación de cadenas proporciona una sintaxis conveniente para concatenar varios valores para formar una cadena.
Clear() --> borra todo el contenido del cuadro de texto.
Focus() --> establece el foco de entrada.

Explicación del Código:

Este programa en Windows Forms permite buscar la primera posición de un carácter dentro de una cadena de texto. El usuario escribe un texto y un carácter, luego el programa muestra la posición donde aparece por primera vez.

1. Librerías utilizadas

using System; using System.Windows.Forms;
  • using System; Permite utilizar funciones básicas de C#.
  • using System.Windows.Forms; Permite crear formularios y controles gráficos.

2. Namespace y clase

namespace Ejercicio { public partial class frmEjercicio : Form }

namespace Ejercicio agrupa todas las clases del programa.

frmEjercicio : Form representa el formulario principal de la aplicación.

3. Constructor del formulario

public frmEjercicio() { InitializeComponent(); }

El constructor se ejecuta cuando se abre el formulario.

InitializeComponent(); carga todos los controles del formulario.

4. Botón Mostrar

private void btnMostrar_Click(object sender, EventArgs e)

Este método se ejecuta cuando el usuario hace clic en el botón Mostrar.

Variables utilizadas

int i = 0; string s = txtTexto.Text; char x = char.Parse(txtCaracter.Text);
  • i guarda la posición actual del recorrido.
  • s almacena el texto ingresado.
  • x almacena el carácter a buscar.

5. Ciclo while

while(i < s.Length)

El ciclo while recorre la cadena carácter por carácter.

s.Length devuelve el tamaño de la cadena.

6. Condición if

if (s[i] != x) { i++; }

Verifica si el carácter actual es diferente del carácter buscado.

Si son diferentes, la variable i aumenta en 1 para continuar buscando.

7. Cuando encuentra el carácter

txtResultado.Text = $"El carácter {x} está en la posición {i}"; i = s.Length;

Cuando encuentra el carácter:

  • Muestra la posición encontrada.
  • Finaliza el ciclo asignando el tamaño total de la cadena a i.

8. Botón Limpiar

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

Este método limpia todas las cajas de texto del formulario.

  • Clear() elimina el contenido.
  • Focus() coloca el cursor en la caja principal.

9. Funcionamiento General

  1. El usuario escribe una cadena.
  2. Ingresa un carácter.
  3. El programa recorre la cadena.
  4. Busca el primer carácter coincidente.
  5. Muestra la posición encontrada.

No hay comentarios.:

Publicar un comentario

Contar cuantas veces se repite un carácter en una cadena en Windows Forms C Sharp

Código del ejercicio: using System ; using System . Collections . Generic ; using System . ComponentModel ; using System . ...

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