Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Cadenas de Caracteres
Una cadena en C es un conjunto de caracteres, o valores de tipo "char", terminados con el carcter nulo (\0). Internamente se almacenan en posiciones consecutivas de memoria.
Programacin 1
Las cadenas de caracteres se declaran como vectores de tipo char. char cadena[5]; //cadena de caracteres
0 1 2 3 4 \0
Programacin 1
Cadenas de Caracteres
Las cadenas de caracteres se declaran como vectores de tipo char. char cadena[100]; //cadena de caracteres El acceso a los elementos (letras) de una cadena de caracteres es anlogo al acceso en el caso de vectores de nmeros: cadena[7]='F'; // hacemos referencia al carcter que ocupa la posicin 8
Programacin 1
Programacin 1
Funcin gets gets(char *s ) Lee caracteres desde el teclado, incluyendo los espacios hasta que encuentra un ENTER. El ENTER es reemplazado por un carcter nulo y el string resultante es colocado en la direccin indicada por s. Retorna s.
Programacin 1
Funcin puts puts( char *s ) Escribe un string hacia la pantalla. Luego de impreso el string agrega automticamente un \n. Solo es aplicable a variables del tipo string.
Programacin 1
Programacin 1
Copiar cadenas
char s[20] = "ab"; char s2[20]; strcpy (s2, s); Permite copiar una cadena a otra. Un error muy frecuente es intentar copiar con el operador de asignacin (s2 = s;). Esto no es vlido, pues en C no est permitido copiar vectores
Programacin 1
Funcin strcpy
char *strcpy( char *destino , char *origen ) Copia los caracteres situados a partir de origen en destino hasta encontrar el '\0' que se incluye en la copia. Devuelve la cadena destino.
Programacin 1
Funcin strncpy
char *strncpy(char *origen, int n ) *destino, char
Copia n caracteres del string "origen" , NO incluyendo el carcter nulo, si la cantidad de caracteres copiada es menor que strlen(origen) + 1, en la direccin apuntada por "destino". n es un nmero entero y deber ser menor que la memoria reservada y apuntada por destino.
Programacin 1
Ejemplo de strncpy
char strorigen[] = "0123456789" ; char strdestino[] = "ABCDEFGHIJ" ;
Funcin strlen int strlen(char *s ) Retorna un entero con la cantidad de caracteres del string. No toma en cuenta al \0. Por lo que la memoria real necesaria para albergar al string es 1+strlen(s).
Programacin 1
Concatenar cadenas
Funcin strcat char *strcat( char *destino , char *origen ) Agrega el contenido de "origen" al final del string inicializado "destino", devolviendo destino.
Programacin 1
char p[20] ; char q[10] = "123456789" ; char w[3] = "AB" ; char y[20] = "AB" ; strcat( y , q ) ; /* Correcto , el contenido de y ser: A,B,1,2,3,4,5,6,7,8,9,\0 */
Programacin 1
Ejemplos de concatenar cadenas strcat( p , q ) ; /* Error ! p no ha sido inicializado por lo que la funcin no encuentra el NULL para empezar a agregar. strcat( w , q ) ; /* Error ! w solo tiene 3 caracteres, por lo el resultado final ser: w= A,B,1 sin la terminacin del NULL por lo que una prxima operacin que se haga utilizando este array, como string, fallar rotundamente.
Programacin 1
Comparacin cadenas
Funcin strcmp int strcmp( char *s1 , char *s2 ) Retorna un entero, cuyo valor depende del resultado de la comparacin: < 0 si s1 es menor que s2 == 0 si s1 es igual a s2 >0 si s1 es mayor que s2. La comparacin se realiza caracter a caracter , y devuelve el resultado de la realizada entre los primeros dos que sean distintos.
Programacin 1
Buscar un carcter en una cadena Funcin strchr char *strchr(char *s1 , int c) Retorna un puntero, a la posicin del caracter dentro del string, si lo encuentra, en su defecto NULL. La funcin recorre el string desde el inicio, por lo que marcar la primera aparicin del caracter en l. El carcter nulo es considerado como parte del string.
Programacin 1
Funcin strstr char *strstr(char *s1 , char *s2 ) Encuentra la primera ocurrencia de s2 en s1 y devuelve el resto de s1 a partir de dicha posicin. Si s2 no es parte de s1 devuelve NULL.
Programacin 1
Modificacin de cadenas
Funciones strlwr y strupr char *strlwr( char *s1 ) char *strupr( char *s1 ) Convierte respectivamente los caracteres comprendidos entre a y z a minsculas maysculas.
Programacin 1
Conversin entre cadenas y nmeros int isalnum( int c ) int isalpha( int c ) int isdigit( int c ) int islower( int c ) int isupper( int c ) Retorna CIERTO (distinto de cero) si el caracter enviado como argumento cae dentro de la categora fijada para la comparacin y FALSO (cero) en caso contrario.
Programacin 1
Retorna CIERTO si c es: isalnum(c) Si es alfanumrico (letras nmeros) isalpha(c) Si es alfabtico, mayscula minscula. islower(c) Si es un caracter alfabtico en minscula.
Programacin 1
Retorna CIERTO si c es: isupper(c) Si es un caracter alfabtico en mayscula. isdigit(c) Si es un comprendido entre 0 y 9 nmero
Programacin 1
int atoi( const char *s ) long atol( const char *s ) double atof( const char *s )
Convierte el string apuntado por s a un nmero. atoi() retorna un entero, atol() un long y atof() un double.
Programacin 1
Programacin 1
Ejercicio 1
Escriba un programa que permita leer una cadena, que puede contener letras y dgitos, y luego nos determine la cantidad de dgitos contenidos en la cadena.
Programacin 1
Ejercicio 2
Escriba un programa que permita leer una cadena de caracteres y que luego nos determine e imprima la cantidad de palabras que contiene la cadena.
Programacin 1