[C con Clase] Array de caracteres

Marving jr.marving en gmail.com
Dom Abr 13 20:28:30 CEST 2014


Hola a todos. 
De nuevo por aquí con cuestiones de novatos.
El programa es bastante sencillo, pero no lo suficiente para mi.
Copia una array en otra. 
El origen no debería cambiar y el destino tendría que ser una copia del 
origen.
Pero tras esta copia el origen pierde un numero
de caracteres, igual a la longitud que tenia en un principio la cadena
de destino.


#include <cstdlib>
#include <iostream>
#include <cstring>

using namespace std;

void copicad(char [], char []);

int main(int argc, char** argv) {
  
    char origen  [] =  "Leones, tigres, ardillas, sapos";
    char destino [] =  "Leones, tigres,";
    
    cout << "--origen-- " << origen << " " << "--destino-- " << destino << endl;
    copicad(destino, origen);
    cout << "--origen-- " << origen << " " << "--destino-- " << destino << endl;
      
    cin.ignore();
    cin.get();
    return 0;
}

void copicad(char destino[], char origen[])
{
    int i = 0;
    while ((destino[i] = origen[i]) != '\0')
    {
         i++;
    }
}

output
--origen-- Leones, tigres, ardillas, sapos --destino-- Leones, tigres,
--origen-- ardillas, sapos --destino-- Leones, tigres, ardillas, sapos


Más información sobre la lista de distribución Cconclase