Introducción a la programación con c

Page 115

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

2.2.10.

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

Un programa de ejemplo

Vamos a implementar un programa que lee por teclado una l´ınea de texto y muestra por pantalla una cadena en la que las secuencias de blancos de la cadena original (espacios en blanco, tabuladores, etc.) se han sustituido por un s´olo espacio en blanco. Si, por ejemplo, el programa lee la cadena "una cadena con blancos ", mostrar´a por pantalla la cadena ((normalizada)) "una cadena con blancos ". normaliza.c

normaliza.c 1 2 3

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

4 5

#define MAXLON 80

6 7 8 9 10

int main(void) { char a[MAXLON+1], b[MAXLON+1]; int longitud , i, j;

11

printf ("Introduce una cadena (m´ ax. %d cars.): ", MAXLON); gets(a); longitud = strlen(a); b[0] = a[0]; j = 1; for (i=1; i<longitud ; i++) if (!isspace(a[i]) || (isspace(a[i]) && !isspace(a[i-1]))) b[j++] = a[i]; b[j] = ’\0’; printf ("La cadena normalizada es %s\n", b);

12 13 14 15 16 17 18 19 20 21 22

return 0;

23 24

}

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . · 121 Modifica normaliza.c para que elimine, si los hay, los blancos inicial y final de la cadena normalizada. · 122 Haz un programa que lea una frase y construya una cadena que s´olo contenga sus letras min´ usculas o may´ usculas en el mismo orden con que aparecen en la frase. · 123 Haz un programa que lea una frase y construya una cadena que s´olo contenga sus letras min´ usculas o may´ usculas en el mismo orden con que aparecen en la frase, pero sin repetir ninguna. · 124 Lee un texto por teclado (con un m´aximo de 1000 caracteres) y muestra por pantalla la frecuencia de aparici´ on de cada una de las letras del alfabeto (considera u ´nicamente letras del alfabeto ingl´es), sin distinguir entre letras may´ usculas y min´ usculas (una aparici´on de la letra e y otra de la letra E cuentan como dos ocurrencias de la letra e). .............................................................................................

2.3.

Vectores multidimensionales

Podemos declarar vectores de m´ as de una dimensi´on muy f´acilmente: int a[10][5]; float b[3][2][4];

En este ejemplo, a es una matriz de 10 × 5 enteros y b es un vector de tres dimensiones con 3 × 2 × 4 n´ umeros en coma flotante. Puedes acceder a un elemento cualquiera de los vectores a o b utilizando tantos ´ındices como dimensiones tiene el vector: a[4][2] y b[1][0][3], por ejemplo, son elementos de a y b, respectivamente. Introducci´ on a la Programaci´ on con C

109


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.