elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Convertir char[] a char *[] ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Convertir char[] a char *[] ?  (Leído 4,954 veces)
Sanlegas

Desconectado Desconectado

Mensajes: 131


https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-


Ver Perfil
Convertir char[] a char *[] ?
« en: 11 Julio 2010, 00:50 am »

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

Código:
#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:


En línea

cbug

Desconectado Desconectado

Mensajes: 147



Ver Perfil
Re: Convertir char[] a char *[] ?
« Respuesta #1 en: 11 Julio 2010, 00:58 am »

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

Código:
cout <<  funcion(&palabra,1,3);.


En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Convertir char[] a char *[] ?
« Respuesta #2 en: 11 Julio 2010, 01:01 am »

-
Código:
funcion("Prueba",1,3) = "Pru"

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

Código:
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í:

Código:
#include <iostream>
#include <cstring>
#include <cstdlib>

Código:
char * tmp;
No le asignas espacio en memoria.

Código:
strcat(tmp,cadena[n]);
Código:
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
  1. std::string palabra("Prueba");
  2.    std::cout << palabra.substr(0, 3) << std::endl;
  3.  
Saludos.
« Última modificación: 11 Julio 2010, 01:23 am por Leo Gutiérrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda doble puntero char a matriz de char
Programación C/C++
neo_from_cs_matrix 3 6,251 Último mensaje 5 Septiembre 2011, 03:53 am
por rir3760
ERROR excepcion: char* = char* + n « 1 2 »
Programación C/C++
x64core 10 6,052 Último mensaje 21 Enero 2012, 20:20 pm
por Eternal Idol
Lectura de matríz de char como char** o DWORD*
Programación C/C++
david_BS 3 3,547 Último mensaje 20 Febrero 2012, 20:49 pm
por Eternal Idol
convertir unsigned char a char
Programación C/C++
SARGE553413 4 3,479 Último mensaje 10 Julio 2014, 13:28 pm
por SARGE553413
Introducir char y convertir char en int
Programación C/C++
tonesofwhiskie 0 1,909 Último mensaje 27 Enero 2017, 12:43 pm
por tonesofwhiskie
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines