9 Cadenas Mtra Irma Ardn Definicin de Cadena

  • Slides: 17
Download presentation
9. Cadenas Mtra. Irma Ardón

9. Cadenas Mtra. Irma Ardón

Definición de Cadena � Arreglo de Caracteres que termina en nulo ‘�’ char nom.

Definición de Cadena � Arreglo de Caracteres que termina en nulo ‘’ char nom. Cad[max]; � Se leen con: gets(nom. Cad); cin. getline(nom. Cad, max); � Se muestran con: puts(nom. Cad); printf(“%s”, nom. Cad); cout<<nom. Cad;

Funciones básicas de string. h… � strcpy(destino, origen); Copia la cadena origen en la

Funciones básicas de string. h… � strcpy(destino, origen); Copia la cadena origen en la cadena destino � strlen(cad); Retorna la cantidad de caracteres válidos de cad

…Funciones básicas de string. h � � strcmp(cad 1, cad 2); strcmpi(cad 1, cad

…Funciones básicas de string. h � � strcmp(cad 1, cad 2); strcmpi(cad 1, cad 2); Compraran cad 1 y cad 2, retornando: 0 si son iguales >0 si cad 1 > cad 2 <0 si cad 1 < cad 2 strcmpi(…); no diferencía mayúsculas de minúsculas

//Funciones de Cadenas CAD_bib. cpp Mtra Irma Ardón #include<iostream> #include<conio. h> #include<string. h> #include<stdio.

//Funciones de Cadenas CAD_bib. cpp Mtra Irma Ardón #include<iostream> #include<conio. h> #include<string. h> #include<stdio. h> using namespace std; int main(){ char cad 1[10], cad 2[10], cad 3[10], cad 4[]={"hola"}, cad 5[]={"hola"}, cad 6[]= {"HOLA"}, cad 7[]={"HILA"}; int long 1, comparacion, copia; puts("n. INGRESE CADENA UNO: "); gets(cad 1); puts("n. INGRESE CADENA DOS: "); gets(cad 2); //…

//LONGITUDES long 1 = strlen(cad 1); cout<<"n. LONGITUD DE LA CADENA UNO long 1

//LONGITUDES long 1 = strlen(cad 1); cout<<"n. LONGITUD DE LA CADENA UNO long 1 = strlen(cad 1); "<<long 1; cout<<"nn. LONGITUD DE LA CADENA DOS strlen(cad 2)); "<<strlen(cad 2); //COPIADO strcpy(cad 3, cad 1); cout<<"nn. COPIA DE LA CADENA UNO strcpy(cad 3, cad 1); "; puts(cad 3); //…

//COMPARACION cout<<"n. VALORES RETORNADOS POR LAS FUNCIONES DE COMPARACIONn"; comparacion = strcmp(cad 4, cad

//COMPARACION cout<<"n. VALORES RETORNADOS POR LAS FUNCIONES DE COMPARACIONn"; comparacion = strcmp(cad 4, cad 5); cout<<"n. SI SON IGUALES strcmp "<<comparacion<<" PARA "<<cad 4<<", "<<cad 5<<"n"; comparacion = strcmp(cad 6, cad 7); cout<<"n. SI SON DIFERENTES strcmp "<<comparacion<<" PARA "<<cad 6<<", "<<cad 7<<"n";

//…. COMPARACION… comparacion = strcmp(cad 5, cad 6); cout<<"nstrcmp HACE DIREFERNCIA ENTRE MAYUSCULAS Y

//…. COMPARACION… comparacion = strcmp(cad 5, cad 6); cout<<"nstrcmp HACE DIREFERNCIA ENTRE MAYUSCULAS Y MINUSCULAS: "<<comparacion<<" PARA "<<cad 5<<", " <<cad 6<<"n"; comparacion = strcmpi(cad 5, cad 6); cout<<"nstrcmpi NO HACE DIFERENCIA ENTRE MAYUSCULAS Y MINUSCULAS "<<comparacion<<" PARA "<<cad 5<<", " <<cad 6<<"n";

//…. COMPARACION comparacion = strcmp(cad 7, cad 6); cout<<"n. SI SON DIFERENTES strcmp(HILA, HOLA);

//…. COMPARACION comparacion = strcmp(cad 7, cad 6); cout<<"n. SI SON DIFERENTES strcmp(HILA, HOLA); "<<comparacion<<" PORQUE "<<cad 7<<" ES MENOR A "<<cad 6<<"n"; comparacion = strcmp(cad 6, cad 7); cout<<"n. SI SON DIFERENTES strcmp(HOLA, HILA); "<<comparacion<<" PORQUE "<<cad 6<<" ES MAYOR A "<<cad 7<<"n"; getch(); return 1; }

Cadenas. cpp Ejercicio. Prueba de Escritorio

Cadenas. cpp Ejercicio. Prueba de Escritorio

//manejo de cadenas NO modular. Cadenas. cpp. Mtra Irma Ardón. #include<iostream> #include<stdio. h> #define

//manejo de cadenas NO modular. Cadenas. cpp. Mtra Irma Ardón. #include<iostream> #include<stdio. h> #define TAM 30 using namespace std; int main(void){ char cad[TAM], cad 2[TAM]; int opc=1; int l, i, flag, long 2; while (opc !=0){ flag=1; cout<<"n 1. IGUALDADn 2. COPIADOn 0. FINn"; cin>>opc; if (opc !=0){ cout<<"INGRESE LA CADENA A PROCESARn"; fflush(stdin); cin. getline(cad, TAM); for(i=0; cad[i]!=''; i++); l=i; }

switch (opc){ case 1: cout<<"INGRESE LA CADENA A COMPARARn"; fflush(stdin); cin. getline(cad 2, TAM);

switch (opc){ case 1: cout<<"INGRESE LA CADENA A COMPARARn"; fflush(stdin); cin. getline(cad 2, TAM); for(i=0; cad 2[i]!=''; i++); long 2=i; if (l == long 2) { for (i=0; i<long 2&&flag!=0; i++){ if (cad[i]!=cad 2[i]) flag=0; } } if (flag==0 || l!=long 2)cout<<"LAS CADENAS NO SON IGUALES"; else cout<<"LAS CADENAS SI SON IGUALESn“; break;

case 2: for(i=0; i<=l; i++) cad 2[i]=cad[i]; cout<<"COPIA DE LA CADENA n"<<cad 2; }

case 2: for(i=0; i<=l; i++) cad 2[i]=cad[i]; cout<<"COPIA DE LA CADENA n"<<cad 2; } } return 0; }

//Manejo de Cadenas Modular //Cad_arr. cpp. Mtra Irma Ardón #include<iostream> #define TAM 30 using

//Manejo de Cadenas Modular //Cad_arr. cpp. Mtra Irma Ardón #include<iostream> #define TAM 30 using namespace std; int longitud(char cad[]) { int i; for(i=0; cad[i]!=''; i++); return(i); } void copia(char cad[], char cad 2[], int l){ int i; for(i=0; i<=l; i++) cad 2[i]=cad[i]; }

void igual(char cad[], int l){ char cad 2[TAM]; int flag=1, long 2, i; cout<<"INGRESE

void igual(char cad[], int l){ char cad 2[TAM]; int flag=1, long 2, i; cout<<"INGRESE LA CADENA A COMPARARn"; cin. getline(cad 2, TAM); long 2=longitud(cad 2); if (l == long 2) { for (i=0; i<long 2&&flag!=0; i++){ if (cad[i]!=cad 2[i]) flag=0; } } if (flag==0||l != long 2)cout<<"LAS CADENAS NO SON IGUALES"; else cout<<"LAS CADENAS SI SON IGUALESn"; }

void invierte(char cad[], int l){ char temp[1]; //por compatibilidad de tipos int i, frente,

void invierte(char cad[], int l){ char temp[1]; //por compatibilidad de tipos int i, frente, atras; frente=0; atras=l-1; while (atras>=frente){ temp[0]=cad[frente]; cad[frente++]=cad[atras]; cad[atras--]=temp[0]; } cout<<"CADENA INVERTIDA: "; for (i=0; i < l; i++) cout<<cad[i]; }

int main(void){ char cad[TAM], cad 2[TAM]; int opc=1; int l; while (opc !=0){ cout<<"n

int main(void){ char cad[TAM], cad 2[TAM]; int opc=1; int l; while (opc !=0){ cout<<"n 1. IGUALDADn 2. COPIADOn 3. INVERTIRn 0. FINn"; cin>>opc; if (opc !=0){ cout<<"INGRESE LA CADENA A PROCESARn"; fflush(stdin); cin. getline(cad, TAM); l=longitud(cad); } switch (opc){ case 1: igual(cad, l); break; case 2: { copia(cad, cad 2, l); cout<<"COPIA DE LA CADENA n"<<cad 2; break; } case 3: invierte(cad, l); } } return 0; }