Código (cpp) [Seleccionar]
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
class Cadena{
public:
Cadena (const char*);
Cadena (const Cadena&);
Cadena (short);
~Cadena (void);
Cadena& operator = (const char*);
Cadena& operator = (const Cadena&);
char& operator [] (const short);
int getLongitud () {
return (longitud);
}
friend Cadena operator + (const Cadena&, const Cadena&);
friend ostream& operator << (ostream&, Cadena&);
private:
char *caracteres;
short longitud;
};
Cadena::Cadena(const char* c)
{
longitud= strlen(c);
caracteres= new char[longitud];
for(int i=0; i<=longitud; i++)
{
caracteres[i]= c[i];
}
}
Cadena::Cadena(const Cadena& c1)
{
longitud= c1.longitud;
caracteres= new char[longitud];
for(int i=0; i<=longitud; i++)
{
caracteres[i]=c1.caracteres[i];
}
}
Cadena::~Cadena()
{
delete (caracteres);
}
Cadena::Cadena(short c2)
{
longitud=0;
caracteres= new char[c2];
caracteres[0]='\0';
}
Cadena &Cadena::operator= (const Cadena& c4)
{
delete caracteres;
longitud= c4.longitud;
caracteres= new char[longitud];
for(int i=0; i<=longitud; i++)
{
caracteres[i]= c4.caracteres[i];
}
return *this;
}
Cadena& Cadena::operator= (const char* c3)
{
delete caracteres;
longitud= strlen(c3);
caracteres= new char(longitud);
for(int i=0; i<=longitud; i++)
{
caracteres[i]= c3[i];
}
return *this;
}
char& Cadena::operator[] (const short indice)
{
static char final = '\0';
return(indice >= 0 && indice < longitud ? caracteres[indice] : final);
}
Cadena operator + (const Cadena& c5,const Cadena& c6)
{
short tam;
tam=c5.longitud+c6.longitud;
Cadena Cadena(tam);
Cadena.caracteres=new char[tam];
Cadena.longitud=tam;
Cadena=strcat(c5.caracteres, c6.caracteres);
return Cadena;
}
ostream& operator << (ostream &out, Cadena &str)
{
out << str.caracteres;
return(out);
}
int main ()
{
Cadena cad1("Hola");
Cadena cad2("Chau");
Cadena cad3(3);
cout <<"\n Cadena 1: "<<cad1;
cout<<"\n Cadena 2: "<<cad2;
cad3=cad1+cad2;
cout<<"\n Union de cadenas "<<cad3;
cout<<"\ncad1[3]: "<<cad1[3];
cad3="YO";
cout<<"\n cadena 3: "<<cad3;
cad3[0] = 'T';
cad3[1] = 'U';
cad3[2] = '\0';
cout<<"\n Nueva cadena 3: "<<cad3;
cad3=cad1;
cout<<"\n cadena 3 asignada a cadena 1: "<<cad3;
return(0);
system("PAUSE");
}
Mod: Los códigos deben ir en etiquetas GeSHi