Resumen: saber si una cadena o letra está dentro de otra cadena en C; es decir, comprobar si una string en C tiene una substring en C.

Para saber si una cadena tiene otra cadena, letra o carácter usamos la función strstr. No importa si comparamos con un carácter o con una cadena, veremos ejemplos para ambos casos.

Uso de strstr para saber si cadena tiene cadena en C

Aunque suene un poco complejo o raro, vamos a comprobar si una cadena tiene otra cadena en C, utilizando el método strstr presente dentro de strings.h.

Ya sea una subcadena o un carácter, al final estaremos buscando una cadena dentro de otra cadena en C. Pero bueno, la grano.

Saber si cadena tiene subcadena en C

Para saber si una string tiene una substring hacemos lo siguiente:

See the gist on github.

Basta con saber que strstr devuelve un apuntador NULL en caso de que la primer cadena (pajar) no tenga la segunda cadena (aguja).

En este caso www no está dentro de parzibyte.me así que devuelve NULL y por lo tanto el programa indica que no existe.

Nota: en este caso lo hice al propósito, es decir, puse el ejemplo de que no exista la cadena en la otra cadena.

Con variables

Ahora veamos cuando sí existe; voy a demostrar cómo se puede usando variables (ya que en el ejemplo anterior definimos las cadenas al invocar a la función).

Veamos el ejemplo:

See the gist on github.

En este caso mundo (la aguja) sí existe dentro de Hola mundo (el pajar). Mientras recuerdes el orden de los argumentos todo irá bien.

Saber si carácter existe dentro de cadena en C

Aunque un carácter y una cadena no son lo mismo (y de hecho las cadenas no existen en C pero esa es otra historia) podemos aplicar un truco.

Si queremos saber si una string tiene un char entonces convertimos el char a string y luego usamos strstr.

Veamos el ejemplo:

See the gist on github.

Después de hacer la conversión simplemente usamos strstr.

Poniendo todo junto

Los 3 ejemplos están aquí, así como la importación de la librería (si lo queremos ver así):

See the gist on github.

Puedes ejecutar el código en este enlace.

Conclusión y apuntes

  • Esta función viene dentro de strings.h, no olvides hacer el include correspondiente.
  • La función trabaja tomando en cuenta mayúsculas y minúsculas
  • Si quieres comparar sin importar si son mayúsculas o minúsculas primero convierte ambas cadenas a la misma notación
  • También se puede saber el índice en donde la subcadena aparece usando operaciones con punteros.

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…

16 horas 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…

1 día hace

PHP: incrustar imagen en base64

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

1 día 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.