Convertir char[] a char *[] ?

Iniciado por Sanlegas, 11 Julio 2010, 00:50 AM

0 Miembros y 1 Visitante están viendo este tema.

Sanlegas

Que tal, hace unos dias que empeze con c++ y ahora me puse a crear mi primera función que es para recortar una cadena... digamos asi:

funcion("Prueba",1,3) = "Pru"

bueno hize este codigo

#include <iostream.h>
#include <string.h>
#include <stdlib.h>
int funcion( char * cadena[], int start,int length);



main()
{

char palabra[10]= "Prueba";



cout <<  funcion(palabra,1,3);


return 0;
}

int funcion( char * cadena[], int start,int length)
{
char * tmp;

for (int n = start -1;n<start - length;n++)
{
strcat(tmp,cadena[n]);
}

return atoi(tmp);
}


pero al compilar me marca este error
Citar'funcion' : cannot convert parameter 1 from 'char [10]' to 'char *[]'
que no se puede convertir... ya eh intentado de modificar la funcion pero me marca error en el strcat  :-\, espero puedan ayudarme, gracias de antemano  :laugh:

cbug

Supongo que es en el cout... Y creo que se debe a que debes usar el operador &

cout <<  funcion(&palabra,1,3);.

leogtz

#2
-funcion("Prueba",1,3) = "Pru"

Entonces deberías de cambiar el prototipo de tu función a esto:

char *funcion(char *string, int start, int final);

-include <iostream.h>

El nuevo estandard dice que no es necesaria la extensión h para las cabeceras. Si tu compilador no te alerta es que está obsoleto y debes cambiarlo.

Estás trabajando con C++(realmente no sé si C++ o C, parece un híbrido), deberías de tenerlo así:

#include <iostream>
#include <cstring>
#include <cstdlib>


char * tmp;
No le asignas espacio en memoria.

strcat(tmp,cadena[n]);
char * strcat ( char * destination, const char * source );

No concuerda, tu estás tratando de agregar un caracter.

Hay una función miembro en la clase string que hace exactamente lo que quieres:

Código (cpp) [Seleccionar]
std::string palabra("Prueba");
    std::cout << palabra.substr(0, 3) << std::endl;
   

Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com