:
char Obs[]=Aprobado; char color[]={g,r,i,s,\0}; 0 1 2 3 4 5 6 7 8
CADENAS
\0
\0, es el carcter nulo en el cual c++ finaliza todas las cadenas de caracteres. char Obs[3]=Descontado; //Error porque el tamao de la cadena es menor que lo declarado. Cuando declare una variable tipo cadena, debe tener en consideracin al carcter nulo (\0) en la longitud mxima de la cadena. La declaracin de un vector de cadenas tiene la forma tal como se indica. Char nProducto[30][15]; // Declara a nProducto como un vector de 30 elementos y la longitud de la cadena es de 15 caracteres
ALGORITMOS Y PROGRAMACIN
CADENAS
La declaracin anterior del vector de cadena se mostrara as.
longitud de 15 0 1 2 ... 29
ALGORITMOS Y PROGRAMACIN
FUNCIONES DE CADENAS
El c++ nos proporcionan muchas funciones estandares 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
3
ALGORITMOS Y PROGRAMACIN
FUNCIONES DE CADENAS
Funcin strncpy()
strncpy(c1,c2,n);
Permite copiar los n primeros caracteres de la cadena c2 en c1, lo cual implica que el contenido original de c1 se pierde.
Funcin strcat()
strcat(c1,c2);
Permite concatenar la cadena c2 en c1, es decir la longitud de la cadena c1 aumentara. char c1[]=Programa;strcat(c1,Algoritmos); // el contenido de c1 ser ProgramaAlgoritmos
4
ALGORITMOS Y PROGRAMACIN
FUNCIONES DE CADENAS
Funcin strncat()
strncat(c1,c2,n);
Permite concatenar los n primeros caracteres de la cadena c2 en c1, lo cual implica que el contenido original de c1 aumenta.
Funcin strcmp()
strcmp(c1,c2);
Permite comparar la cadena c1 y c2, la funcin puede devolver 0, si la cadena c1 es igual a c2, 1 si la cadena c1 es mayor que c2 o -1 si la cadena c1 es menor que c2.
ALGORITMOS Y PROGRAMACIN
FUNCIONES DE CADENAS
Funcin strncmp()
strncmp(c1,c2,n);
Permite comparar hasta n caracteres de c1 con la cadena c2, la funcin puede devolver 0, si la porcin de cadena c1 es igual a c2, 1 si la porcin de la cadena c1 es mayor que c2 o -1 si la porcin de la cadena c1 es menor que c2.
Funcin strupr()
strupr(c);
Funcin strlwr()
strlwr(c);
FUNCIONES DE CADENAS
Funcin strset()
strset(c1,c);
Permite sustituir todos los caracteres de c1 por el carcter c, excepto el carcter \0.
Funcin strchr()
strchr(c,c1);
Esta funcin devuelve un puntero de la primera ocurrencia del caracter c1 en la cadena c, o un valor NULL si el carcter no es encontrado.
Funcin strrchr()
strrchr(c,c1);
Esta funcin devuelve un puntero de la ultima ocurrencia del caracter c1 en la cadena c, o un valor NULL si el carcter no es encontrado.
ALGORITMOS Y PROGRAMACIN
FUNCIONES DE CADENAS
Funcin strnset()
strnset(c1,c,n);
Funcin strlen()
strlen(c);
Funcin strtok()
strtok(c1,c);
Esta funcin divide una cadena en una serie de tokens. Un tokens es una secuencia de caracteres separados por delimitadores. c es el carcter delimitador.
ALGORITMOS Y PROGRAMACIN
FUNCIONES DE CADENAS
Funcin strcmpi()
strcmpi(c1,c2);
Permite comparar la cadena c1 y c2, la funcin puede devolver 0, si la cadena c1 es igual a c2, 1 si la cadena c1 es mayor que c2 o -1 si la cadena c1 es menor que c2. No hace distincin entre maysculas y minsculas.
Funcin strstr()
strstr(c1,c2);
Esta funcin devuelve un puntero de la primera ocurrencia de la cadena c2 dentro de la cadena c1, o NULL si c2 no se encuentra en la cadena c1.
ALGORITMOS Y PROGRAMACIN
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 PROGRAMACIN
10
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); Lee una cadena y lo almacena en la variable c.
ALGORITMOS Y PROGRAMACIN
11
FUNCIONES DE CARACTER
Para usar estas funciones se requiere la librera ctype.h Funcin isalpha()
isalpha(c);
Verifica si c es un carcter alfabtico que esta comprendido entre A..Z o a..z, de ser as devuelve verdadero, caso contrario falso.
Funcin isdigit()
isdigit(c);
Verifica si c es un digito (09) si es verdad devuelve verdadero, caso contrario retorna falso.
ALGORITMOS Y PROGRAMACIN
12
FUNCIONES DE CARACTER
Funcin isupper()
isupper(c);
Verifica si c es un carcter alfabtico que esta comprendido entre A..Z, de ser as devuelve verdadero, caso contrario falso.
Funcin islower()
islower(c);
Verifica si c es un carcter alfabtico que esta comprendido entre az, si es verdad devuelve verdadero, caso contrario retorna falso.
Funcin tolower()
tolower(c);
13
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 PROGRAMACIN
14
FUNCIONES DE CARACTER
Requieren de la Librera stdio.h y iostream.h Funcion getchar() Variable=getchar(); Captura un carcter, no e 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 PROGRAMACIN
15
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);
ALGORITMOS Y PROGRAMACIN
16
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;
ALGORITMOS Y PROGRAMACIN
17
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 PROGRAMACIN
18
FUNCIONES DE CADENAS
ALGORITMOS Y PROGRAMACIN
19
20
else { cout<<"\nLa cadena al cual apunta es:"<<p<<endl; cout<<"\nLa cadena original es:"<<string<<endl;
cout<<"\nEl caracter "<<c<<" se encuentra en la posicion "<<pstring<<endl;
ALGORITMOS Y PROGRAMACIN
21
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;
ALGORITMOS Y PROGRAMACIN
22
23
ALGORITMOS Y PROGRAMACIN
24
ALGORITMOS Y PROGRAMACIN
25
26
ALGORITMOS Y PROGRAMACIN
27
28