Beruflich Dokumente
Kultur Dokumente
laboratorio
2007-1
OBJETIVOS:
Familiarizarse con la librería string.h
El alumno practicará el empleo de funciones para la manipulación de cadenas.
El alumno aprenderá a validar datos al realizar una captura.
EQUIPO:
Computadora
Disco Flexible o algún otro medio para almacenar sus prácticas
Turbo C (TC)
G ENERALIDADES
CADENAS DE CARACTERES
Una cadena es un conjunto de caracteres, el cual cada caracter se encuentra en una posición determinada dentro de
la cadena. Se puede utilizar una cadena general o una cadena fija de un número determinado de caracteres, estas
se declaran en el siguiente formato:
La librería de manejo de cadenas string.h es un conjunto de funciones útiles para manipulación de datos de
cadenas, entre ellas tenemos:
1 de 5
PROGRAMACIÓN
laboratorio
2007-1
int strcmpi(cad1,cad2) Compara cad1 con res=strncat(ciudad,estado); res tendrá valor >0
res=strncat(ciudad,”TIJUANA”);
cad2 y regresa los res=strncat(estado,ciudad); res tendrá valor =0
mismos resultados res tendrá valor <0
considerandoa
mayúsculas y
minúsculas iguales.
strncmp(cad1,cad2,n) Compara n caracteres res=strncat(ciudad,”tij.bc”,3); res tendrá valor 0. Porque
de cad1 con cad2. las 3 primeras letras son
Regresa los mismos res=strncat(ciudad,”tecate”, 5); iguales
valores que strcmp. res tendrá valor diferente
a 0 porque las 5 primeras
letras no son iguales.
strlen( cad ) Determina la longitud res=strlen(ciudad); res=7
res=strlen(“UABC”);
de la cadena. res=4
strlwr( cad ) Convierte la cadena a strlwr(ciudad); ciudad=“tijuana”
minúsculas
strupr( cad ) Convierte cadena1 a strlupr(ciudad); ciudad=“TIJUANA”
mayusculas
strrev( cad ) Invierte la cadena strrev(ciudad); ciudad=“anaujit”
strset( cad, caracter) Rellena toda la cadena strset(ciudad.’x’); ciudad=“xxxxxxx”
con el caracter x
especificado
La validación de una cadena significa aceptar exclusivamente letras para capturar una palabra, y agregar el espacio
si queremos validar la captura de una frase. Igualmente se puede validar la captura de un número aceptando
únicamente dígitos.
Para declarar una cadena vacía sin caracteres se inicializa con el fin de cadena ‘\x0’ en la posición cero.
Para agregar la opción de corregir en la captura, entonces debemos validar la tecla BackSpace, cuyo caracter ASCII
es el número ocho.
/ / V A LI D ACI Ó N E N MO D O T E X T O
# i nc lu d e <i o st re a m. h >
# i nc lu d e < st d io .h >
# i nc lu d e < st dl ib .h >
# i nc lu d e <c o ni o. h>
# i nc lu d e < st r i ng . h>
# i nc lu d e <c t y p e . h>
# de f i ne E NT E R 1 3
# de f i ne B kS p c 2 7
int c a p t u ra E nt e r o( ) {
int x= w he re x( ) , y = wh e r e y ( ) ;
c ha r t e c la , c a d[ 4 0] ;
int l o ng Ca d;
c a d[ 0 ] =‘\ x 0’ ;
do {
g ot o xy ( x,y ) ;
c lre ol ( ) ;
p r int f( “ % s” ,c a d) ;
t e c la =g e t c h( ) ;
2 de 5
PROGRAMACIÓN
laboratorio
2007-1
lo ng Ca d =st rl e n ( c a d ) ;
if ( i sd ig i t ( t e c la ) || t e c la = =‘- ’ && l o ng Ca d = =0 ) {
c a d [l on g Ca d + + ] =t e c la ;
c a d [l on g Ca d ] =‘ \ x 0 ’;
}
if ( t e c la = =B kSp c && l o ng Ca d> 0)
c a d[- - l o ng Ca d ] =‘\ x 0’ ;
} w hil e ( t e c la ! =E N T E R || lo ng Ca d = =0 ) ;
re t u r n a t o i( c a d) ;
}
int c a p t u ra E nt e r oP o sit i vo ( ) {
int x= w he re x( ) , y = wh e r e y ( ) ;
c ha r t e c la , c a d[ 4 0] ;
int l o ng Ca d;
c a d[ 0 ] =‘\ x 0’ ;
do {
g ot o xy ( x,y ) ;
c lre ol ( ) ;
p r int f( “ % s” ,c a d) ;
t e c la =g e t c h( ) ;
lo ng Ca d =st rl e n ( c a d ) ;
if ( i sd ig i t ( t e c la ) ) {
c a d [l on g Ca d + + ] =t e c la ;
c a d [l on g Ca d ] =‘ \ x 0 ’;
}
if ( t e c la = =B kSp c && l o ng Ca d> 0)
c a d[- - l o ng Ca d ] =‘\ x 0’ ;
} w hil e ( t e c la ! =E N T E R || lo ng Ca d = =0 ) ;
re t u r n a t o i( c a d) ;
}
floa t c a p t u ra R e a l( ) {
int x= w he re x( ) , y = wh e r e y ( ) ;
c ha r t e c la , c a d[ 4 0] ;
int l o ng Ca d;
do {
g ot o xy ( x,y ) ;
c lre ol ( ) ;
p r int f( “ % s” ,c a d) ;
t e c la =g e t c h( ) ;
lo ng Ca d =st rl e n ( c a d ) ;
if ( i sd ig i t ( t e c la ) || t e c la = =‘- ’ && l o ng Ca d = =0 ) {
c a d [l on g Ca d + + ] =t e c la ;
c a d [l on g Ca d ] =‘ \ x 0 ’;
}
if ( t e c la = =‘ .’ & & ! p u nt o ) {
p u nt o = 1;
c a d [l on g Ca d + + ] =t e c la ;
c a d [l on g Ca d ] =‘ \ x 0 ’;
}
if ( t e c la = = B kS p c & & l o ng Ca d > 0) {
p u nt o =c a d [- - l o ng Ca d ]= = ‘.’ ? 0: p u nt o;
c a d[l o ng Ca d ]= ‘\ x 0’ ;
3 de 5
PROGRAMACIÓN
laboratorio
2007-1
}
} w hil e ( t e c la ! =E nt e r || l o ng Ca d = =0 ) ;
re t u r n a t o f( c a d ) ;
}
floa t c a p t u ra R e a l( ) {
int x= w he re x( ) , y = wh e r e y ( ) ;
c ha r t e c la , c a d[ 4 0] ;
int l o ng Ca d;
do {
g ot o xy ( x,y ) ;
c lre ol ( ) ;
p r int f( “ % s” ,c a d) ;
t e c la =g e t c h( ) ;
lo ng Ca d =st rl e n ( c a d ) ;
if ( i sd ig i t ( t e c la ) ) {
c a d [l on g Ca d + + ] =t e c la ;
c a d [l on g Ca d ] =‘ \ x 0 ’;
}
if ( t e c la = =‘ .’ & & ! p u nt o ) {
p u nt o = 1;
c a d [l on g Ca d + + ] =t e c la ;
c a d [l on g Ca d ] =‘ \ x 0 ’;
}
if ( t e c la = =B kSp c && l o ng Ca d > 0) {
p u nt o =c a d [- - l o ng Ca d ]= = ‘.’ ? 0: p u nt o;
c a d[l o ng Ca d ]= ‘\ x 0’ ;
}
} w hil e ( t e c la ! =E nt e r || l o ng Ca d = =0 ) ;
re t u r n a t o f( c a d ) ;
}
vo id ma y u sc u la s( c ha r ç ç c a d) {
int x= w he re x( ) , y = wh e r e y ( ) ;
c ha r t e c la ;
int l o ng Ca d;
( ç c a d) = “ “ ;
do {
g ot o xy ( x,y ) ;
c lre ol ( ) ;
p r int f( “ % s” , ç c a d) ;
t e c la =g e t c h( ) ;
lo ng Ca d =st rl e n ( ç c a d) ;
if ( i sa l nu m( t e c la ) ) {
( ç c a d) [l o ng Ca d+ + ] =t ou p p e r( t e c la ) ;
( ç c a d) [l o ng Ca d] = NU LL ;
}
if ( t e c la = =B kSp c && l o ng Ca d > 0)
( ç c a d) [- - lo ng Ca d ] =NU L L;
} w hil e ( t e c la ! =E N T E R || lo ng Ca d = =0 ) ;
}
4 de 5
PROGRAMACIÓN
laboratorio
2007-1
/ / ç ç ç ç ç Fu nc ió n P ri nc ip a l ç ç ç ç ç ç
vo id ma i n( v oi d) {
int x;
floa t y ;
c ha r ç c a d e na ;
c lr sc r( ) ;
p r int f( “ E nt e r o: “ ) ;
x =c a p t u ra E nt e r o( ) ;
p r int f( “ \ nE l nu me r o c a p t u ra d o e s: % d\ n” , x) ;
p r int f( “ E nt e r o P o s it i v o: “ ) ;
x =c a p t u ra E nt e r oP os ( ) ;
p r int f( “ \ nE l nu me r o c a p t u ra d o e s: % d\ n” , x) ;
p r int f( “ R e a l: “ ) ;
y =c a p t u ra R e a l( ) ;
p r int f( “ \ nE l nu me r o c a p t u ra d o e s: % . 4f\ n” ,y ) ;
p r int f( “ R e a l P o sit i vo: “ ) ;
y =c a p t u ra R e a lP os ( ) ;
p r int f( “ \ nE l nu me r o c a p t u ra d o e s: % . 4f\ n” ,y ) ;
p r int f( “ Ca de na Ma y u sc u la s: “ ) ;
ma y u sc u la s( w he re x( ) ,w he re y ( ) ,& c a de na ) ;
p r int f( “ \ n La c a d e na c a p t u ra da e s: % s \ n” , c a de na ) ;
getch();
}
ACTIVIDAD
1. Realizar un programa que dado un numero entero N entre 2 y 20 tomarlo como una base numérica, y realice lo
siguiente:
a. Conversión de base 10 a base N.
b. Conversión de base N a base 10.
Salir del programa al presionar la tecla ESC una vez realizada la conversión, si se presiona la tecla ENTER
continuar realizando conversiones (preguntar si desea capturar otra base N)
Dígitos a utilizar:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J
5 de 5