Está en la página 1de 14

Arreglos de Caracteres

Strings
Taller de Informtica
Arreglos: definicin
Conjunto de elementos del mismo tipo
agrupados en una sola variable. Es una
estructura de datos que almacena una coleccin
de datos del mismo tipo.
Un string en C es un arreglo de carcteres que
contiene valores del tipo char! terminados con
el carcter nulo! que se representa con el
caracter "#$"! o %U&&.
Cadena de carcteres o string
'inta(is para definir una variable tipo cadena)
char <identificador> [<longitud mxima>];
Cadena de carcteres o string
'i queremos almacenar la cadena hola en el
arreglo eje* debemos tener en cuenta que
necesitamos + lugares para hola mas un lugar
adicional para el carcter nulo '\0'
,eclaracin - .signacin)
char eje1[5]= hola;
/or ejemplo)
char eje1[5]= hola;
cout << eje1[1];
Es posible hacer referencia a cada uno de los caracteres
individuales que componen la cadena! simplemente
indicando la posicin.
En el ejemplo se mostrar en pantalla el carcter o
cout << eje1[0];
&os 0ndices tomarn valores empe1ando en el cero. En el
ejemplo se mostrar en pantalla el carcter h
Cadena de carcteres o string
/or ejemplo)
char eje1[5];
eje1[5]= hola;
&a asignacin directa slo est permitida cuando se
hace junto con la declaracin.
Esta forma dar0a ERROR!! en la compilacin.
Eje1[0]='h';
Eje1[1]='o';
Eje1[2]='l';
Eje1[3]='a';
Eje1[4]='\0';
La forma CORRECTA
sera sta, o en la
declaracin del arreglo.
Cadena de carcteres o string
Forma INCORRECTA
/or ejemplo)
char op1 = !;
char op"[]= !;
! es diferente de !#$
char op1='A'; %%letra ! como caracter$
char op2[]= A; %%letra ! como &tring
char op2[2]; %%letra ! como &tring
op2[0]='A;
op2[1]='\0'; %%caracter nulo 'ue indica fin
%%del &tring$
Cadena de carcteres o string
&i(eof
,evuelve el tama2o de un arreglo en b-tes.
/odemos obtener el n3mero de elementos dividiendo el
arreglo - el tama2o de uno de sus elementos.
Funciones tiles
#include <iostream
)include <c&tring>
usin! namespace std;
int main"#
*
char arr1[50];
cout<<$%&mero de elementos'$<<&i(eof+arr1,%&i(eof+arr1[0],;
cin(!et"#;
return 0;
-
&trlen+,
Calcula la longitud de una cadena. ,evuelve el n3mero
de caracteres que ha- en el string! e!clu"endo el
carcter nulo de terminacin de cadena.
#inta!is: &trlen+arra.,;
#include <iostream
)include <c&tring>
usin! namespace std;
int main"#
)
char arr"[]= /n ejemplo de cadena;
cout<<$*a cadena'[$<< arr" << $]tiene$<<&trlen+arr",<<
$caracteres$<< endl;
cin(!et"#;
return 0;
+
&trcp.+,
Copia una cadena a otra. Copia la cadena desde origen a
destino. &a copia de caracteres se detendr cuando sea
copiado el carcter nulo.
#inta!is: &trcp.+de&t0orig,;
#include <iostream
)include <c&tring>
usin! namespace std;
int main"#
)
char ca1[] = 12adena ejemplo1;
char ca"[15];
cout << &trcp.+ca"0ca1, << endl;
cout << ca2 << endl;
return 0;
+
&trcmp+,
Compara una cadena con otra. &a comparacin se reali1a
carcter a carcter. &a funcin devuelve un entero.
'i la cad* es ma-or que cad4 el resultado ser ma-or de $!
si cad* es menor que cad4! el resultado ser menor de $!
si son iguales! el resultado ser $.
5ientras los carcteres comparados sean iguales! se
contin3a con el siguiente carcter.
Cuando se encuentran carcteres distintos! aqu6l que
tenga un cdigo .'CII menor! pertenecer a la cadena
menor.
'i las cadenas son iguales hasta que una de ellas se
acaba! la ms corta es la menor.
&trcmp+,
#inta!is: &trcmp+cad10 cad",;
#include <iostream
)include <c&tring>
usin! namespace std;
int main"#
)
char cad1[]=12adena ejemplo 11; %%no e& nece&ario a&ignar
char cad"[]=12adena ejemplo "1; %%la dimen&ion de lo& &tring&
char cad3[]=12adena1; %%.a 'ue al iniciali(arlo&
char cad4[]=12adena1; %%toma el tama5o del texto$
if" strcmp"cad1, cad"# < 0#
cout<<cad1<<$es menor -ue$<<cad" <<endl;
el&eif" strcmp"cad1, cad"# 0#
cout<<cad1<<$es ma.or -ue$<<cad" << endl;
el&e
cout<<cad1<<$ es i!ual -ue $<<cad" << endl;
cout << strcmp"cad3, cad"# << endl;
cout << strcmp"cad3, cad4# << endl;
return 0;
+
,efinir un string como variable global - desde main
llamar a la funcin contar! que recibe como
argumento un carcter! la funcin debe contar
cuantas veces se repite en el string global! desde la
misma se muestra la cantidad de repeticiones -
retorna a main la dimensin del string. ,esde main
se muestra el valor de retorno.
E$ercicio con strings
#include <iostream
#include c!"#in$%
usin! namespace std;
char ![] = 6&te e& el &tring glo7al;
int /ontar"c0ar ca#; %% 8eclaracion de funci9n
int main"#
)
int nu;
char :;
cout << 1n!rese el caracter a 2uscar' $;
cin 3;
nu = 2ontar+:,; %% ;lama a funci9n
cout << *a cantidad de 4eces -ue aparece es' $ << nu;
return "0#;
+
int 2ontar+char ca, %% 8efinicion de funci9n
)
int i, cont, lar!o;
lar!o = si5eof"A#6si5eof"A[0]#;
for "i=0; i<lar!o; i77#
)
if " ![i] == ca # cont77;
+
return "cont#;
+
E&ERCICIO 'ARA 'RACTICAR
Escribir un programa que permita mostrar el siguiente men:
1( Ca#$a# cadena o#i$inal(
2( )u!ca# un ca#*c"e# en la cadena(
3( Ca#$a# cadena + co,-a#a# con la cadena o#i$inal(
4( Co-ia# la cadena o#i$inal en nue.a cadena(
A( /ali#
y luego permitir al usuario ingresar una opcin y ejecutarla.
TENER EN C0ENTA 10E2
7olo sale si el usuario ingresa /.
7La cadena A ser!, tipo global, de "# elementos.
7i elige 1 llamar! a la funcin $%&'%() que deber! permitir al usuario cargar %, luego
retornar! a main() y desde all se mostrar! la cadena cargada.
7i elige 2 el usuario ingresar! un car!cter y luego llamar! a la funcin *+$% que
buscar! el car!cter en %, de,ol,er! a main() la cantidad de ,eces que aparece el
car!cter en % y desde all se mostrar! la cantidad o el mensaje -./ E.$/.0&12.
7i elige 3 llamar! a la funcin $/34%&%& que deber! permitir al usuario cargar una
cadena *5"#6, compararla con %, retornar a main ", 7 8. En main informar! -3ayor2 si
retorn ", -3enor2 si retorn 7 o -9gual2 si retorn 8.
7i elige 4 deber! llamar a la funcin $/49%() que deber! permitir al usuario copiar la
cadena % en una nue,a cadena $. Luego deber! mostrar $.

También podría gustarte