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.

3 comentarios:

cthulum dijo...

Muy bien, yo realice una, también análoga y no difiere mucho a la tuya

cthulum dijo...

por cierto... alguna idea para realizar una función que actualiza datos de los indices de una estructura?. El programa guarda datos y después los lista, deseo una función que me permita modificar los datos previamente guardados, alguna idea?

Unknown dijo...
Este comentario ha sido eliminado por el autor.