Page 111

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

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

· 111 Dise˜ na un programa C que lea un entero n y una cadena a y muestre por pantalla el valor (en base 10) de la cadena a si se interpreta como un n´ umero en base n. El valor de n debe estar comprendido entre 2 y 16. Si la cadena a contiene un car´acter que no corresponde a un d´ıgito en base n, notificar´ a el error y no efectuar´a c´alculo alguno. Ejemplos: si a es "ff" y n es 16, se mostrar´a el valor 255; si a es "f0" y n es 15, se notificar´a un error: ((f no es un d´ ıgito en base 15)); si a es "1111" y n es 2, se mostrar´a el valor 15. · 112 Dise˜ na un programa C que lea una l´ınea y muestre por pantalla el n´ umero de palabras que hay en ella. .............................................................................................

2.2.6.

Concatenaci´ on

Python permit´ıa concatenar cadenas con el operador +. En C no puedes usar + para concatenar cadenas. Una posibilidad es que las concatenes t´ u mismo ((a mano)), con bucles. Este programa, por ejemplo, pide dos cadenas y concatena la segunda a la primera: 1

#include <stdio.h>

2 3

#define MAXLON 80

4 5 6 7 8 9

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

10

printf ("Introduce un texto (m´ ax. %d cars.): ", MAXLON); gets(a); printf ("Introduce otro texto (m´ ax. %d cars.): ", MAXLON); gets(b);

11 12 13

longa = strlen(a); longb = strlen(b); for (i=0; i<longb; i++) a[longa+i] = b[i]; a[longa+longb] = ’\0’; printf ("Concatenaci´ on de ambos: %s", a);

14 15 16 17 18 19 20

return 0;

21 22

}

Pero es mejor usar la funci´ on de librer´ıa strcat (por ((string concatenate))): 1 2

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

3 4

#define MAXLON 80

5 6 7 8

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

9

printf ("Introduce un texto (m´ ax. %d cars.): ", MAXLON); gets(a); printf ("Introduce otro texto (m´ ax. %d cars.): ", MAXLON); gets(b); strcat(a, b) ; // Equivale a la asignaci´ on Python a = a + b printf ("Concatenaci´ on de ambos: %s", a);

10 11 12 13 14 15 16

return 0;

17 18

}

Introducci´ on a la Programaci´ on con C

105

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement