duplicar cadena
#include <stdio.h>
#include <stdlib.h>
// i i i i i
// 0 1 2 3 4
// c a s a 0 (cad)
// - - - - - (nueva)
// devuelve una copia dinamica de la cadena pasada como parametro.
char* strdup(char cad[]){
char *dupli;
int i = 0;
while(cad[i] != '\0'){
i++;
}
dupli = (char *)malloc((i + 1) * sizeof(char)); //ya tengo la cadena con su tamaño adecuado
i = 0;
while(cad[i] != '\0'){
dupli[i] = cad[i];
i++;
}
dupli[i] = '\0'; //el \0 no entra al bucle, lo tengo que copiar yo.
return dupli;
}
int main(){
char cadena[100];
printf("Introduce una cadena: ");
scanf("%[^\n]%*c", cadena);
char *duplicada = strdup(cadena);
printf("La cadena es => %s\n", duplicada);
free(duplicada);
return 0;
}