Fundamentos de Informática 1ºIIND Cadenas de caracteres Conceptos básicos Las cadenas de caracteres en C se declaran como vectores de tipo char. int vec_num[100]; char cadena[100]; //vector de números enteros //cadena de caracteres El acceso a los elementos (letras) de una cadena de caracteres es análogo al acceso en el caso de vectores de números: vec_num[7]=456; cadena[7]='F'; Las cadenas de caracteres utilizan un caracter especial (el caracter NULL, que se escribe '\0') para indicar el final de la cadena. cadena[0]='H'; cadena[1]='o'; cadena[2]='l'; cadena[3]='a'; cadena[4]-'\0'; En cualquier momento se puede conocer la longitud de una cadena mediante un bucle while que busque el caracter '\0'; i=0; while (cadena[i]!='\0') { i++; } /* la longitud de la cadena (número de letras) es i */ Funciones estándar de entrada y salida #include <stdio.h> Funciones de lectura scanf("%s",cadena); //lee una palabra scanf("%c",&ch); //lee un caracter (ignorando espacios y cambios de linea '\n') ch=getchar(); //lee un caracter del teclado. ch=getc(stdin); //lee un caracter del teclado. ch=fgetc(stdin); //lee un caracter del teclado. gets(cadena); //lee una frase hasta fin de linea fgets(cadena, N, stdin); //lee una frase con control de tamaño. También lee '\n' Escritura: printf("%s",cadena); //escribe una cadena (frase o palabra) por pantalla puts(cadena); //escribe una cadena, igual que printf printf("%c",ch); //escribe un caracter por pantalla Funciones estandar de cadena de caracteres #include <string.h> size_t strlen( char *str ); //devuelve la longitud de la cadena strcpy( char *to, char *from ); int strcmp(char *s1, char *s2 ); //copia o inicializa // compara las cadenas s1 y // =0 cuando s1 es igual // <0 cuando s1 es menor // >0 cuando s1 es mayor s2 a s2 que s2 que s2 Rafael Palacios 2005