You are on page 1of 3

Cadenas.cpp 18/09/2014 06:48:22 p.m.

Page 1 of 3

/*Desarrolle un programa utilizando programacion procedimental y punteros
en el cual se implementen subrutinas que permitan: 1) Determinar la longi-
tud de una cadena de caracteres, 2) Copiar una cadena en otra, 3)Comparar
dos cadenas, 4) Copiar una cadena en otra sin espacios y 5) Concatenar 2
cadenas. Organice el programa en un menú de opciones. */

#include<conio.h>
#include<iostream.h>
int Longitud (char *p)
{ int cont=0;
while(*p!='\0')
{ cont++;
p++;
}
return cont;
}
void Copiar(char *p1, char *p2)
{ while(*p1!='\0')
{ *p2=*p1;
p1++; p2++;
}
*p2='\0';
}
void CopiarSE(char *p1, char *p2)
{ while(*p1!='\0')
{ if(*p1!=32)
{ *p2=*p1;
p1++; p2++;
}
else
p1++;
}
*p2='\0';
}
void Concatenar(char *p1, char *p2, char *p3)
{ while(*p1!='\0')
{ *p3=*p1;
p1++; p3++;
}
*p3=' ';
while(*p2!='\0')
{ *p3=*p2;
p2++; p3++;
}

*p3='\0';
}
int Comparar(char *p1, char *p2)
{ while(*p1!='\0' && *p2!='\0')
{ if (*p1>*p2)
return 1;
else if (*p1<*p2)
return -1;
p1++; p2++;
}

cin. Copiar(cad1. 50. if(Band==0) cout<<"Son iguales. else if(Band>0) cout<<cad1<<" > "<<cad2<<endl. Page 2 of 3 if(*p1=='\0' && *p2=='\0') return 0. else if (*p2=='\0') return 1..'). cout<<"La cadena copiada sin espacios: "<<Aux<<endl. cin. cin>>opc. 50. char *var) { while( *valor<li || *valor>ls) { cout<<"Valor de "<<*var<<" fuera de rango. cad2[50]. Band=Comparar(cad1..getline(cad1. while (opc!=5) { clrscr(). else cout<<cad2<<" > "<<cad2<<endl. L=Longitud(cad1). Aux). break. int opc=1. '. 1. Aux). '. cin. Aux= new char[L+1]. int ls.').cpp 18/09/2014 06:48:22 p. cout<<"La cadena copiada: "<<Aux<<endl. CopiarSE(cad1.getline(cad2. cout<<"Ingrese la segunda frase: ". cin. switch(opc) { case 1: cout<<"Ingrese la frase: ". delete []Aux. Aux= new char[L+1]. cin>>*valor. "Opcion"). '. } } void main() { char cad1[50]. case 3: cout<<"Ingrese la frase: ". case 2: cout<<"Ingrese la primera frase: ".getline(cad1.m.'). 50. cout<<"1)Copiar Cadena\n2)Comparar Cadenas\n3)Copiar sin". Band. 50. break. L=Longitud(cad1). *Aux. '. cad2).\n".getline(cad1.Cadenas. } void Validar(int *valor. else return -1. L. reintroduzca". delete []Aux. cout<<"espacio\n4)Concatenar\n5)Salir\n". break. . 5.'). int li. Validar(&opc.

cin. cad2. 50.').'). delete []Aux. Concatenar(cad1. '. Aux= new char[L+2]. cin.cpp 18/09/2014 06:48:22 p. } } . 50.getline(cad2. Page 3 of 3 case 4: cout<<"Ingrese la primera frase: ". '. } getch().getline(cad1. cout<<"Ingrese la segunda frase: ". L=Longitud(cad1)+Longitud(cad2).m. cout<<"La cadena concatenada"<<Aux<<endl. Aux).Cadenas.