Lenguaje de programación C

Posición de carácter (letra) en cadena de C

En este corto post de programación en C vamos a ver cómo encontrar el índice y último índice de un carácter en C, o dicho de otra manera, la primera y última aparición de una letra en una cadena de C.

Ya sabemos que en C no existen las cadenas como tal y que tenemos arreglos de caracteres, pero aquí llamaremos “cadenas” o “strings” a esos arrays de tipo char.

Entonces veamos cómo saber la primera y última aparición de un char en una cadena de C.

Explicación del algoritmo

Para saber en cuál posición se encuentra un carácter dentro de una cadena de C simplemente recorremos la cadena desde el 0 hasta la longitud de la misma menos 1, y comprobamos si el char actual es el que buscamos.

Si es que encontramos el carácter entonces devolvemos el índice (y dejamos de recorrer la cadena) o posición en donde lo encontramos.

Por otro lado, si queremos saber la última aparición hacemos lo mismo pero ahora recorremos desde el final hacia el principio.

Primer ocurrencia de carácter en cadena usando C

El código para encontrar el primer índice que coincide con el carácter buscado en una cadena es el siguiente:

See the gist on github.

En caso de que la letra no se encuentre dentro de la cadena entonces la función devolverá un -1 (lo mismo aplica para la función de C que devuelve la última posición de un carácter dentro de una cadena).

Última ocurrencia de carácter en cadena de C

Ahora veamos cómo saber la última posición o índice de una letra dentro de un string de C. Como lo dije, ahora vamos desde el final al inicio.

En este caso estoy usando strlen para calcular la longitud de la cadena, pero podemos calcular la longitud manualmente si así se requiere.

See the gist on github.

Poniendo todo junto

Ahora veamos un ejemplo y el código completo. En este caso simplemente voy a imprimir las posiciones en donde la letra aparece por primera vez y en donde aparece por última vez.

See the gist on github.

Ahora compilo con:

gcc ocurrencias.c -o ocurrencias.exe

Y ejecuto con:

./ocurrencias.exe

La salida es:

1 y 13

Cosa que es correcta, ya que la primer ocurrencia de la letra es en la segunda posición (índice 1, ya que se cuenta desde el cero) y la última es en el índice 13.

Aunque no se vea al principio, estas funciones nos van a servir para varias cosas, por ejemplo para saber si una letra solo se encuentra una sola vez dentro de la cadena (ya que si el primer y último índice son los mismos entonces el char solo se encuentra una vez).

Para terminar te dejo con más tutoriales de C en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

1 día hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

2 días hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

2 días hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

3 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Esta web usa cookies.