jueves, 30 de agosto de 2007

Programa 3. La función "strcpy"


Hoy vamos a hacer un ejemplo con la función strcpy. Luego vamos a hacer una función por nuestra cuenta que sea equivalente.
La función strcpy se encuentra en la biblioteca <string.h> y se utilza para copiar una cadena de caracteres (fuente) en el lugar que ocupaba otra (destino). Esta copia es destructiva, o sea, que todos los caracteres que estaban en la cadena destino desaparecen, aunque la cadena destino fuera más larga que la cadena fuente.La cadena destino se pone como primer argumento de la función y la cadena fuente como segundo.Vamos a verlo con un ejemplo.


#include<stdio.h>
#include<string.h>

int main(int argc,char **argv)
{
char texto1[]="corta";
char texto2[]="mediana";
char texto3[]="larguisima";

strcpy(texto2,texto1);
printf("%s\n",texto2);
strcpy(texto2,texto3);
printf("%s\n",texto2);
return 0;
}


De ejecución:


antonio@linex-bD2zrN:~/ProgramasC$ ./prueba12
corta
larguisima
antonio@linex-bD2zrN:~/ProgramasC$


Ahora vamos a construir una función por nuestra cuenta y riesgo que realice lo mismo que strcpy; la vamos a llamar mistrcpy. Veremos que los resultados son idénticos.


#include<stdio.h>

char mistrcpy(char destino[],char fuente[])
{
int i=0;
while(fuente[i])
{
destino[i]=fuente[i];
i++;
}
destino[i]='\0';
return *destino;
}

int main(int argc, char **argv9)
{
char texto1[]="corto";
char texto2[]="mediano";
char texto3[]="larguisimo";

mistrcpy(texto2,texto1);
printf("%s\n",texto2);
mistrcpy(texto2,texto3);
printf("%s\n",texto2);
return 0;
}



De ejecución:


antonio@linex-bD2zrN:~/ProgramasC$ ./prueba11
corto
larguisimo
antonio@linex-bD2zrN:~/ProgramasC$


Hasta pronto.