Page 113

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

2 Estructuras de datos en C: vectores est´aticos y registros

de ((string comparison))). La funci´ on strcmp recibe dos cadenas, a y b, y devuelve un entero. El entero que resulta de efectuar la llamada strcmp(a, b) codifica el resultado de la comparaci´on: es menor que cero si la cadena a es menor que b, es 0 si la cadena a es igual que b, y es mayor que cero si la cadena a es mayor que b. Naturalmente, menor significa que va delante en orden alfab´etico, y mayor que va detr´as. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . · 115 Dise˜ na un programa C que lea dos cadenas y, si la primera es menor o igual que la segunda, imprima el texto ((menor o igual)). · 116 ¿Qu´e valor devolver´ a la llamada strcmp("21", "112")? · 117 Escribe un programa que lea dos cadenas, a y b (con capacidad para 80 caracteres), y muestre por pantalla −1 si a es menor que b, 0 si a es igual que b, y 1 si a es mayor que b. Est´a prohibido que utilices la funci´ on strcmp. .............................................................................................

2.2.8.

Funciones u ´tiles para manejar caracteres

No s´olo string.h contiene funciones u ´tiles para el tratamiento de cadenas. En ctype.h encontrar´as unas funciones que permiten hacer c´omodamente preguntas acerca de los caracteres, como si son may´ usculas, min´ usculas, d´ıgitos, etc: isalnum(car´ acter ): devuelve cierto (un entero cualquiera distinto de cero) si car´ acter es una letra o d´ıgito, y falso (el valor entero 0) en caso contrario, isalpha(car´ acter ): devuelve cierto si car´ acter es una letra, y falso en caso contrario, isblank (car´ acter ): devuelve cierto si car´ acter es un espacio en blanco o un tabulador, isdigit(car´ acter ) devuelve cierto si car´ acter es un d´ıgito, y falso en caso contrario, isspace(car´ acter ): devuelve cierto si car´ acter es un espacio en blanco, un salto de l´ınea, un retorno de carro, un tabulador, etc., y falso en caso contrario, islower (car´ acter ): devuelve cierto si car´ acter es una letra min´ uscula, y falso en caso contrario, isupper (car´ acter ): devuelve cierto si car´ acter es una letra may´ uscula, y falso en caso contrario. Tambi´en en ctype.h encontrar´ as un par de funciones u ´tiles para convertir caracteres de min´ uscula a may´ uscula y viceversa: toupper (car´ acter ): devuelve la may´ uscula asociada a car´ acter , si la tiene; si no, devuelve el mismo car´ acter, tolower (car´ acter ): devuelve la min´ uscula asociada a car´ acter , si la tiene; si no, devuelve el mismo car´ acter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . · 118 ¿Qu´e problema presenta este programa? 1 2

#include <stdio.h> #include <ctype.h>

3 4 5 6

int main(void) { char b[2] = "a";

7 8

if (isalpha(b))

Introducci´ on a la Programaci´ on con C

107

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c