En este ejercicio sobre programación en C vamos a ver cómo saber si una cadena está conformada únicamente por las letras del alfabeto, es decir:
- Que tiene únicamente letras del alfabeto, ya sean mayúsculas o minúsculas
- No tiene números
- No tiene otro tipo de caracteres, solo espacios (esto último igual se puede quitar)
Para ello nos vamos a valer únicamente de la función isalpha
y comprobaciones simples.
Función en C: Saber si cadena solo tiene letras de alfabeto
Vamos a encerrar todo esto en una función que devuelve un booleano emulado, es decir, un entero en donde el 1 es true
y el 0 false
.
En la función recorremos la cadena y obtenemos el carácter en cada paso. También hacemos dos comprobaciones:
- Si el carácter NO está dentro del alfabeto (con
isalpha
) o… - Si el carácter no es un espacio
En caso de que ambas condiciones se cumplan, inmediatamente detenemos la función y regresamos false
.
Por si terminamos el ciclo y no se terminó la función, entonces significa que hemos recorrido toda la cadena y cada carácter pasó la validación así que regresamos true
.
Así que el código fuente queda así:
Modo de uso
Veamos el uso de la función para saber si cadena contiene únicamente letras del alfabeto en ANSI C.
En el método main
definimos una cadena y luego invocamos a la función definida anteriormente:
En este caso simplemente imprimo una cadena, pero puedes usar esto para cualquier otra cosa obteniendo el resultado.
Como ves, si tiene números o puntos, la validación indica que no está compuesta únicamente por letras del alfabeto.
Poniendo todo junto
El código completo de para Saber si cadena solo tiene letras de alfabeto en C queda así:
Si quieres puedes probar el resultado en este enlace.
Por cierto, en el código he definido la cadena pero bien podría proporcionarla el usuario, la puedes leer con fgets.
¿Más tutoriales de C? click aquí.