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í:
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í.