Вы находитесь на странице: 1из 23

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.

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.

Cadenas de caracteres
1. Definicin
2. Funciones para manejo de cadenas

Funcin para lectura de cadenas

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.

Funcin para escritura de cadenas

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.

Funciones para el manejo de cadenas

La funciones que veremos a


continuacin se encuentran en la
librera string.h

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

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.

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.

Ejemplo de strncpy
char strorigen[] = "0123456789" ;
char strdestino[] = "ABCDEFGHIJ" ;
strncpy( strdestino , strorigen , 5 ) ;

Los strings quedaran, luego de la copia:


strdestino[] == 0 , 1 , 2 , 3 , 4 , F , G , H ,
I , J , \0

Longitud de una cadena

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).

Concatenar cadenas
Funcin strcat
char *strcat( char *destino , char *origen )
Agrega el contenido de "origen" al final del
string inicializado "destino", devolviendo
destino.

Ejemplos de concatenar cadenas

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 */

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.

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.

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.

Buscar una cadena dentro de otra

Funcin strstr
char *strstr(char *s1 , char *s2 )
Encuentra la primera ocurrencia de s1 en
s2 y devuelve el resto de s2 a partir de
dicha posicin. Si s1 no es parte de s2
devuelve NULL.

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.

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.

Conversin entre cadenas y nmeros

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.

Conversin entre cadenas y nmeros

Retorna CIERTO si c es:


isupper(c) Si es un
alfabtico en mayscula.

caracter

isdigit(c)
Si
es
un
comprendido entre 0 y 9

nmero

Conversin entre cadenas y nmeros

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.

Ejemplos de Uso de
funciones de Cadenas
de caracteres

Вам также может понравиться