lunes, 25 de mayo de 2026

Encontrar la primera posición de un carácter x de una cadena en C Sharp

Código del ejercicio:

int i = 0, p = 0, sw = 0;
Console.Write("Ingresar texto: ");
string s = Console.ReadLine();
Console.Write("Ingresar carácter: ");
char l = char.Parse(Console.ReadLine());
while(i < s.Length && sw == 0)
{
    if (s[i] == l)
    {
        p = i;
        sw = 1;
    }
    i = i + 1;
}
Console.Write($"El carácter {l} está en la posición {p}");
Console.ReadKey();

Definición de los códigos del ejercicio:

Console.Write() --> escribe un texto en pantalla.
int --> dato entero de 32 bits.
Console.ReadLine() --> lee un dato desde teclado.
string --> dato de tipo cadena de texto.
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.
char --> se usa para contener un único carácter unicode (con codificación Unicode de 16 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.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
Length --> obtiene el número de caracteres del objeto String actual.
&& --> 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 igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
$"{}" --> interpolación de cadenas proporciona una sintaxis conveniente para concatenar varios valores para formar una cadena.
Console.ReadKey() --> escribimos el método Console.ReadKey() al final de nuestro código para mantener abierta la ventana de nuestra consola.

Explicación del Código:

int i = 0, p = 0, sw = 0;

Console.Write("Ingresar texto: ");
string s = Console.ReadLine();

Console.Write("Ingresar carácter: ");
char l = char.Parse(Console.ReadLine());

while(i < s.Length && sw == 0)
{
    if (s[i] == l)
    {
        p = i;
        sw = 1;
    }

    i = i + 1;
}

Console.Write($"El carácter {l} está en la posición {p}");
Console.ReadKey();

1. Declaración de Variables

Se crean tres variables:

  • i: recorre cada letra del texto.
  • p: guarda la posición donde se encontró el carácter.
  • sw: sirve para detener la búsqueda cuando el carácter ya fue encontrado.

2. Ingreso del Texto

El usuario escribe una cadena de texto y se almacena en la variable s.

3. Ingreso del Carácter

El usuario ingresa el carácter que desea buscar dentro del texto. Ese carácter se guarda en la variable l.

4. Ciclo while

El ciclo recorre el texto letra por letra mientras:

  • i < s.Length: no llegue al final del texto.
  • sw == 0: el carácter todavía no haya sido encontrado.

5. Comparación del Carácter

La condición compara cada letra del texto con el carácter ingresado.

if (s[i] == l)

Si ambos son iguales:

  • p = i: guarda la posición encontrada.
  • sw = 1: detiene la búsqueda.

6. Incremento del Contador

La instrucción:

i = i + 1;

aumenta el valor de i para revisar la siguiente letra del texto.

7. Mostrar Resultado

Finalmente se muestra la posición donde se encontró el carácter.

Console.Write($"El carácter {l} está en la posición {p}");  

8. Pausa Final

Console.ReadKey(); espera que el usuario presione una tecla antes de cerrar la consola.

Código del ejercicio: Otra forma de hacer

int i = 0;
Console.Write("Ingresar texto: ");
string s = Console.ReadLine();
Console.Write("Ingresar carácter: ");
char x = char.Parse(Console.ReadLine());
while(i < s.Length)
{
    if (s[i] != x)
    {
        i = i + 1;
    }
    else
    {
        Console.Write($"El carácter {x} está en la posición {i}");
        i = s.Length;
    }
}
Console.ReadKey();

Definición de los códigos del ejercicio:

Console.Write() --> escribe un texto en pantalla.
int --> dato entero de 32 bits.
Console.ReadLine() --> lee un dato desde teclado.
string --> dato de tipo cadena de texto.
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.
char --> se usa para contener un único carácter unicode (con codificación Unicode de 16 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.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
Length --> obtiene el número de caracteres del objeto String actual.
&& --> 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 igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
$"{}" --> interpolación de cadenas proporciona una sintaxis conveniente para concatenar varios valores para formar una cadena.
Console.ReadKey() --> escribimos el método Console.ReadKey() al final de nuestro código para mantener abierta la ventana de nuestra consola.

Explicación del Código:

int i = 0;
Console.Write("Ingresar texto: ");
string s = Console.ReadLine();

Console.Write("Ingresar carácter: ");
char x = char.Parse(Console.ReadLine());

while(i < s.Length)
{
    if (s[i] != x)
    {
        i = i + 1;
    }
    else
    {
        Console.Write($"El carácter {x} está en la posición {i}");
        i = s.Length;
    }
}

Console.ReadKey();

Explicación simple del código

  • int i = 0;
    Se crea una variable llamada i que empieza en 0. Esta variable sirve para recorrer cada posición del texto.
  • Console.Write("Ingresar texto: ");
    Muestra un mensaje para que el usuario escriba un texto.
  • string s = Console.ReadLine();
    Guarda el texto ingresado por el usuario en la variable s.
  • Console.Write("Ingresar carácter: ");
    Solicita al usuario que escriba un carácter.
  • char x = char.Parse(Console.ReadLine());
    Convierte el dato ingresado en un carácter y lo guarda en la variable x.
  • while(i < s.Length)
    El ciclo recorre el texto mientras i sea menor que la longitud de la cadena.
  • if (s[i] != x)
    Verifica si el carácter actual es diferente al carácter buscado.
  • i = i + 1;
    Si no encuentra el carácter, avanza a la siguiente posición.
  • else
    Se ejecuta cuando el carácter encontrado sí coincide con el buscado.
  • Console.Write($"El carácter {x} está en la posición {i}");
    Muestra la posición donde se encontró el carácter.
  • i = s.Length;
    Hace que el ciclo termine porque ya encontró el carácter.
  • Console.ReadKey();
    Espera que el usuario presione una tecla antes de cerrar el programa.

¿Qué hace el programa?

Este programa busca la primera aparición de un carácter dentro de un texto. Recorre letra por letra la cadena hasta encontrar el carácter ingresado por el usuario y muestra la posición donde fue encontrado.

No hay comentarios.:

Publicar un comentario

Contar cuántas veces se repite una vocal en una cadena dada por teclado en C Sharp

Código del ejercicio: int c = 0 , i = 0 ; Console . Write ( "Ingresar texto: " ); string s = Console . ReadLine ...

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