Hola Dtc! tenes varios problemas con el manejo de cadenas pero con practica todo se corrige. Para que una funcion regrese una cadena es como haces en el segundo caso
Y para devolver una cadena en el return tenes que hacer return variable(que es la direccion de inicio del arreglo) y
noo! return variable[200], de esta manera solo estas devolviendo lo que se encuentra en la posicion 200 del arreglo
Pero! si vos creas un arreglo en una funcion y queres devolver dicho arreglo vas a tener un error ya que ese arreglo es
local a la funcion y cuando la funcion termine ese arreglo ya no va existir mas. En este caso para retornar una cadena tiene que ser el mismo arreglo pasado a la funcion, osea return cadena;
Otra cosa, si vos declaras
lo que estas haciendo es declarar un arreglo de punteros a char, donde cada posicion del arreglo es un puntero a una cadena.
Otro error es hacer
Supongo que queres hacer: es asignar en el arreglo gorro el arreglo devuelto de la funcion limpiar, lo que esta mal. Para copiar un arreglo a otro tenes que usar la funcion strcpy de la libreria string.h
Pasando en limpio seria:
Código C:
Ver original#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char manto[200];
char gorro[200];
char *limpiar (char cadena[200]);
int main()
{
strcpy(gorro
, limpiar
(manto
)); // llama a la funcion limpiar y el retorno se lo copia a gorro printf("\nEs: %s, listo", gorro
);
return 0;
}
char *limpiar (char cadena[200])
{
ACA PROCESA EL ARREGLO CADENA[200]
return cadena; // retorna cadena
}
Espero te sirva, saludos