Professional Documents
Culture Documents
\0
CADENAS
La declaracin anterior de la cadena se
muestra esquemticamente as.
0
29
24
FUNCIONES DE CADENAS
El c++ nos proporcionan muchas funciones
estndares de cadena que nos permite hacer
operaciones con cadenas.
Las siguientes funciones requieren de la librera
string.h
Funcin strcpy()
strcpy(c1,c2);
Permite copiar la cadena c2 en c1, lo cual implica
que el contenido original de c1 se pierde.
char c1[]=Programa;char c2[]=Algoritmos;
strcpy(c1,c2); // el contenido de c1 ser Algoritmos
FUNCIONES DE CADENAS
#include<iostream>
#include<string.h>
using namespace std;
// Funcion principal
int main()
{ char c1[]="Fundamentos";
char c2[]="Teoricos";
cout<<"\nc1="<<c1<<endl;
strcpy(c1,c2);
cout<<"c1="<<c1<<endl;
}
ALGORITMOS Y ESTRUCTURAS DE DATOS
FUNCIONES DE CADENAS
Funcin strncpy()
strncpy(c1,c2,n);
strncpy(c1,c2,6);
cout<<"c1="<<c1<<endl;
}
ALGORITMOS Y ESTRUCTURAS DE DATOS
FUNCIONES DE CADENAS
Funcin strcat()
strcat(c1,c2);
FUNCIONES DE CADENAS
Funcin strncat()
strncat(c1,c2,n);
strncat(c1,c2,6);
cout<<"c1="<<c1<<endl;
}
ALGORITMOS Y ESTRUCTURAS DE DATOS
FUNCIONES DE CADENAS
Funcin strcmp()
strcmp(c1,c2);
FUNCIONES DE CADENAS
Funcin strncmp()
strncmp(c1,c2,n);
Funcin strupr()
strupr(c);
Funcin strlwr()
strlwr(c);
FUNCIONES DE CADENAS
Funcin strset()
strset(c1,c);
strset(c1,'P');
cout<<"\nc1="<<c1<<endl;
}
10
FUNCIONES DE CADENAS
Funcin strchr()
strchr(c,c1);
strcpy(d,strchr(c1,'m'));
cout<<"\nc1="<<c1<<endl;
cout<<"d="<<d<<endl;
}
ALGORITMOS Y ESTRUCTURAS DE DATOS
11
FUNCIONES DE CADENAS
Funcin strrchr()
strrchr(c,c1);
strcpy(d,strrchr(c1,'m'));
cout<<"\nc1="<<c1<<endl;
cout<<"d="<<d<<endl;
}
ALGORITMOS Y ESTRUCTURAS DE DATOS
12
FUNCIONES DE CADENAS
Funcin strnset()
strnset(c1,c,n);
strnset(c1,'r',5);
cout<<"\nc1="<<c1<<endl;
}
13
FUNCIONES DE CADENAS
Funcin strlen()
strlen(c);
n=strlen(c1);
cout<<"\nLa longitud de c1="<<n<<endl;
}
ALGORITMOS Y ESTRUCTURAS DE DATOS
14
FUNCIONES DE CADENAS
Funcin strtok()
strtok(c1,c);
15
FUNCIONES DE CADENAS
Funcin strcmpi()
strcmpi(c1,c2);
16
FUNCIONES DE CADENAS
Funcin strstr()
strstr(c1,c2);
17
FUNCIONES DE CADENAS
Las siguientes funciones requieren de la librera
stdlib.h
Funcin atoi()
atoi(c);
Convertir una cadena numrica a un numero entero.
Funcin atol()
atol(c);
Convertir una cadena numrica a un numero entero
largo.
Funcin atof()
atof(c);
Convertir una cadena numrica a un numero flotante.
ALGORITMOS Y ESTRUCTURAS DE DATOS
18
FUNCIONES DE CADENAS
#include<iostream>
#include<stdlib.h>
using namespace std;
// Funcion principal
int main()
{ char c1[]="2456"; int n1;
char c2[]="21475836"; long int n2;
char c3[]="16859.5"; float n3;
n1=atoi(c1); n2=atol(c2);n3=atof(c3);
cout<<"n1="<<n1<<endl;
cout<<"n2="<<n2<<endl;
cout<<"n3="<<n3<<endl;
}
19
FUNCIONES DE CADENAS
Las siguientes funciones requieren de la librera stdio.h y
iostream.h
Funcin gets()
gets(c);
Lee una cadena y lo almacena en la variable c.
Funcin puts()
puts(c);
Permite escribir la cadena c, automticamente hace el
cambio de lnea.
Funcin cin.getline()
cin.getline(c,n,\n);
Lee una cadena de n caracteres o hasta que se pulse
la tecla enter y lo almacena en la variable c.
ALGORITMOS Y ESTRUCTURAS DE DATOS
20
FUNCIONES DE CARACTER
Para usar estas funciones se requiere la
librera ctype.h
Funcin isalpha()
isalpha(c);
Funcin isdigit()
isdigit(c);
21
FUNCIONES DE CARACTER
Funcin isupper()
isupper(c);
Funcin islower()
islower(c);
Funcin tolower()
tolower(c);
22
FUNCIONES DE CARACTER
Funcin toupper()
toupper(c);
Convierte el carcter c de minsculas a maysculas.
Funcin toascii()
toascii(c);
Devuelve el cdigo Ascii del carcter c.
Funcin ispunct()
ispunct(c);
Devuelve verdadero si carcter es un carcter de
puntuacion.
Funcin isalnum()
isalnum(c);
Devuelve verdadero si c es un carcter alfanumrico.
ALGORITMOS Y ESTRUCTURAS DE DATOS
23
FUNCIONES DE CARACTER
Requieren de la librera stdio.h y iostream.h
Funcin getchar()
variable=getchar();
Captura un carcter, el carcter ingresado se
muestra en pantalla, no es necesario presionar la
tecla enter.
Funcin putchar()
putchar(c);
Escribe el carcter c.
Funcin cin.get()
cin.get(c);
Permite leer un carcter cualquiera.
ALGORITMOS Y ESTRUCTURAS DE DATOS
24
FUNCIONES DE CARACTER
Funcion getch() //Requieren de la librera conio.h
variable=getch();
Captura un carcter, el carcter ingresado no se muestra en
pantalla, no e necesario presionar la tecla enter.
#include<iostream>
#include<stdio.h>
#include<conio.h>
using namespace std;
// Funcion principal
int main()
{ char car,car1; cout<<"Uso del getcha():";
car=getchar();
while(car!='\n')
car=getchar();
cout<<endl<<"Uso del getch():"; car1=getch();
while(car1!=13)
{cout<<car1; car1=getch();
}
cout<<endl;
}
ALGORITMOS
Y ESTRUCTURAS DE DATOS
25
FUNCIONES DE CADENAS
#include <iostream>
#include <string.h>
using namespace std;
int main()
{ char c[]="Relaciones entre los objetos en una jerarqua de herencia";
char *d, p, cad[20], c1[10],c2[10];
int n;
cout<<c<<endl;
cout<<"Caracter:";
cin>>p;
cout<<"Cadena:";fflush(stdin);gets(cad);
cout<<"Ingrese cadena 1:";gets(c1);
cout<<"Ingrese cadena2:";gets(c2);
n=strcmp(c1,c2);
26
FUNCIONES DE CADENAS
if(n==0)
cout<<"Las cadenas son exactamente iguales"<<endl;
else if(n>0)
cout<<"\""<<c1<<"\" es mayor que "<<"\""<<c2<<"\""<<endl;
else
cout<<"\""<<c1<<"\" es menor que "<<"\""<<c2<<"\""<<endl;
for(d=strtok(c," ");d!=NULL;)
{ cout<<d<<endl;
d=strtok(NULL," ");
}
cout<<endl;
cout<<strnset(c,'*',3)<<endl;
27
FUNCIONES DE CADENAS
if(isalnum(p))
cout<<p<<" es un caracter alfanumerico"<<endl;
if(isalpha(p))
cout<<p<<" es un caracter entre A..Z, o a...z"<<endl;
else if(isdigit(p))
cout<<p<<" Es un digito que esta entre 0..9"<<endl;
else if(ispunct(p))
cout<<p<<" Es un caracter de puntuacion"<<endl;
cout<<cad<<" como numero entero es "<<atoi(cad)<<endl;
cout<<endl;
system("pause");
}
ALGORITMOS Y ESTRUCTURAS DE DATOS
28
FUNCIONES DE CADENAS
29
30
else
}
cout<<"\nIngrese caracter a buscar:";cin>>c;
q = strrchr(string, c);
31
else
{ cout<<"\nLa cadena al cual apunta es:"<<q<<endl;
cout<<"\nLa cadena original es:"<<string<<endl;
cout<<"\nEl caracter "<<c<<" se encuentra en la posicion "<<q-string<<endl;
cout<<endl;
}
cout<<"\nIngrese cadena:";
fflush(stdin);gets(cad);
32
if(strcmpi(string,cad)==0)
cout<<"\""<<string<<"\" es igual a \""<<cad<<"\""<<endl;
else if(strcmpi(string,cad)>0)
cout<<"\""<<string<<"\" es mayor que \""<<cad<<"\""<<endl;
else
cout<<"\""<<string<<"\" es menor que \""<<cad<<"\""<<endl;
r = strstr(string,cad);
if(r==NULL)
cout<<"La cadena \""<<cad<<"\" no se encuentra en \""<<string<<"\"\n\n";
else
{ cout<<"\nLa cadena al cual apunta es:"<<r<<endl;
cout<<"\nLa cadena original es:"<<string<<endl;
cout<<"\nLa cadena "<<cad<<" se encuentra en la posicion "<<r-string<<endl;
33
34
VECTOR DE CADENAS
Es posible tambin declarar vector de cadenas, para ello
se agrega una dimensin mas.
char v[30][15];La declaracin anterior del vector de
cadena se mostrara as.
longitud de 15
0
1
2
...
29
ALGORITMOS Y ESTRUCTURAS DE DATOS
35
MATRIZ DE CADENAS
Es posible tambin declarar una matriz de cadenas, para
ello se agrega dos dimensiones mas.
char q[30][4][20];La declaracin anterior de la matriz de
cadena se mostrara as.
longitud de 20
0
0
1
2
...
29
ALGORITMOS Y ESTRUCTURAS DE DATOS
36
37
38
39
40