UTNianos

Versión completa: [consulta] sintaxis y semantica
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
hola tengo una duda con las funciones que se hacen.

Por ejemplo esta funcion que reemplaza cadenas.


#include <stdio.h>

char *reemplazar (char *s1,char *s2)
{
int i = 0;

while(s2[i] != '\0')
{
s1[i] = s2[i];
i++;
}
return s1;
}

int main()
{
char cad1[20]= "pablo";
char cad2[20]= "daniela";

printf("%s \n\n",cad1);

reemplazar(cad1,cad2);

printf("%s",cad1);
}


1) cual es la diferencia entre estas 2 funciones? ambas me dan el mismo resultado

char *reemplazar (char *s1,char *s2)

char reemplazar (char *s1,char *s2)

2) el *s1 y *s2 se las escribe asi porque va a ser cambiadas, por el hecho de ser pasados por referencia, es asi?
El char* es una cosa y el char solo es otra...

en lo practico del ejercicio, no te cambia nada... revisá el detalle minimo... un char, a secas, tiene un tamaño máximo... en cambio un char * es un "puntero"...

Te dejo una pregunta parecida a la tuya... (googlié 10 segundos)

http://www.iteramos.com/pregunta/3703/cu...ar--s-en-c
1)En este caso no te importa lo que devuelve la función, porque no lo usas.
Vos devolves un char* pero no lo usas.
Si lo usaras para algo, te puede llegar a importar.
2) El reemplazo se hace en el while, usando como dijiste las referencias s1 y s2.
URLs de referencia