• No se han encontrado resultados

Mtra. Irma Ardón 9. Cadenas

N/A
N/A
Protected

Academic year: 2021

Share "Mtra. Irma Ardón 9. Cadenas"

Copied!
17
0
0

Texto completo

(1)

9. Cadenas

Mtra. Irma Ardón

(2)

Definición de Cadena

Arreglo de Caracteres que termina en nulo ‘\0’

char nomCad[max];

Se leen con: gets(nomCad);

cin.getline(nomCad,max);

Se muestran con:

puts(nomCad);

printf(“%s”,nomCad);

cout<<nomCad;

(3)

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

(4)

…Funciones básicas de string.h

strcmp(cad1,cad2);

strcmpi(cad1, cad2);

Compraran cad1 y cad2, retornando:

0 si son iguales

>0 si cad1 > cad2

<0 si cad1 < cad2

strcmpi(…); no diferencía mayúsculas de

minúsculas

(5)

//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

cad1[10],cad2[10],cad3[10],cad4[]={"hola"},cad5[]={"hola"},ca d6[]=

{"HOLA"},cad7[]={"HILA"};

int long1, comparacion, copia;

puts("\nINGRESE CADENA UNO: ");

gets(cad1);

puts("\nINGRESE CADENA DOS: ");

gets(cad2); //…

(6)

//LONGITUDES

long1 = strlen(cad1);

cout<<"\nLONGITUD DE LA CADENA UNO long1 = strlen(cad1);

"<<long1;

cout<<"\n\nLONGITUD DE LA CADENA DOS strlen(cad2));

"<<strlen(cad2);

//COPIADO

strcpy(cad3,cad1);

cout<<"\n\nCOPIA DE LA CADENA UNO strcpy(cad3,cad1); ";

puts(cad3);

//…

(7)

//COMPARACION

cout<<"\nVALORES RETORNADOS POR LAS FUNCIONES DE COMPARACION\n";

comparacion = strcmp(cad4,cad5);

cout<<"\nSI SON IGUALES strcmp "<<comparacion<<" PARA

"<<cad4<<", "<<cad5<<"\n";

comparacion = strcmp(cad6,cad7);

cout<<"\nSI SON DIFERENTES strcmp "<<comparacion<<" PARA

"<<cad6<<", "<<cad7<<"\n";

(8)

//….COMPARACION…

comparacion = strcmp(cad5,cad6);

cout<<"\nstrcmp HACE DIREFERNCIA ENTRE MAYUSCULAS Y MINUSCULAS: "<<comparacion<<" PARA "<<cad5<<", "

<<cad6<<"\n";

comparacion = strcmpi(cad5,cad6);

cout<<"\nstrcmpi NO HACE DIFERENCIA ENTRE MAYUSCULAS Y MINUSCULAS "<<comparacion<<" PARA "<<cad5<<", "

<<cad6<<"\n";

(9)

//….COMPARACION

comparacion = strcmp(cad7,cad6);

cout<<"\nSI SON DIFERENTES strcmp(HILA,HOLA);

"<<comparacion<<" PORQUE "<<cad7<<" ES MENOR A "<<cad6<<"\n";

comparacion = strcmp(cad6,cad7);

cout<<"\nSI SON DIFERENTES strcmp(HOLA,HILA);

"<<comparacion<<" PORQUE "<<cad6<<" ES MAYOR A "<<cad7<<"\n";

getch(); return 1;

}

(10)

Ejercicio. Prueba de Escritorio

Cadenas.cpp

(11)

//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],cad2[TAM];

int opc=1;

int l,i,flag,long2;

while (opc !=0){

flag=1;

cout<<"\n1.IGUALDAD\n2.COPIADO\n0.FIN\n";

cin>>opc;

if (opc !=0){

cout<<"INGRESE LA CADENA A PROCESAR\n";

fflush(stdin);

cin.getline(cad,TAM);

for(i=0;cad[i]!='\0';i++);

l=i;

}

(12)

switch (opc){

case 1:

cout<<"INGRESE LA CADENA A COMPARAR\n";

fflush(stdin); cin.getline(cad2,TAM);

for(i=0;cad2[i]!='\0';i++);

long2=i;

if (l == long2) {

for (i=0;i<long2&&flag!=0;i++){

if (cad[i]!=cad2[i]) flag=0;

} }

if (flag==0 || l!=long2)cout<<"LAS CADENAS NO SON IGUALES";

else cout<<"LAS CADENAS SI SON IGUALES\n“; break;

(13)

case 2:

for(i=0;i<=l;i++) cad2[i]=cad[i];

cout<<"COPIA DE LA CADENA \n"<<cad2;

} }

return 0; }

(14)

//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]!='\0';i++); return(i);

}

void copia(char cad[],char cad2[], int l){

int i;

for(i=0;i<=l;i++) cad2[i]=cad[i];

}

(15)

void igual(char cad[], int l){

char cad2[TAM];

int flag=1,long2,i;

cout<<"INGRESE LA CADENA A COMPARAR\n";

cin.getline(cad2,TAM);

long2=longitud(cad2);

if (l == long2) {

for (i=0;i<long2&&flag!=0;i++){

if (cad[i]!=cad2[i]) flag=0;

} }

if (flag==0||l != long2)cout<<"LAS CADENAS NO SON IGUALES";

else cout<<"LAS CADENAS SI SON IGUALES\n";

}

(16)

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];

}

(17)

int main(void){

char cad[TAM],cad2[TAM];

int opc=1;

int l;

while (opc !=0){

cout<<"\n1.IGUALDAD\n2.COPIADO\n3.INVERTIR\n0.FIN\n";

cin>>opc;

if (opc !=0){

cout<<"INGRESE LA CADENA A PROCESAR\n";

fflush(stdin); cin.getline(cad,TAM);

l=longitud(cad);

}

switch (opc){

case 1: igual(cad,l); break;

case 2: { copia(cad,cad2,l);

cout<<"COPIA DE LA CADENA \n"<<cad2; break;

}

case 3: invierte(cad,l); } } return 0; }

Referencias

Documento similar

Para la lubricación automática y duradera de la cadena y la espada – emplear sólo aceite lubricante para cadenas de calidad – utilizar. preferentemente el STIHL BioPlus que

Para identificar una red internacional de origen de la llamada se utiliza la cadena de dígitos formada por el indicativo de país E.164 para las redes internacionales (3

¡El tamaño de la cadena debe de ser de un carácter más que la cadena para almacenar el carácter especial que indica el final de ésta:

Para lograr dicho objetivo se han establecido tres características que serán el pilar fundamental de “LA TOLEDO, Carnes procesadas y Embutidos.”, precio, calidad e imagen,

El muestreo en cadena o bola de nieve tiene su origen en la búsqueda de comprensión de realidades culturales o personales que por su condición de marginalidad del orden

En la cadena Cencosud de la ejecutiva Leonor Moreno se encontro que no se sienten satisfechos con la distribución que hay en este momento del material PLV, esta cadena lleva un

La cadena cordón se exporta mayormente como producto semielaborado, del cual se fabrican para uso final las cadenas de cuello, collares, pulseras y otros artículos de joyería..

Se distribuyen en toda la plataforma y las lagunas interiores. La pesca la realizan barcos arrastreros industriales nacionales y extranjeros y un componente creciente de