Retroceder   Foros del Web > Temas generales de computación > Programación > C/C++

Respuesta
 
Herramientas Desplegado
Antiguo 09-may-2008, 12:16   #1 (permalink)
red_robe ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2006
Mensajes: 102
cómo separar el contenido de una tupla (cadena larga)?

hola, he creado una tupla (cadena) dinámicamente, y tengo la información bien entrada.

lo que quiero es que al hacer un cout me muestre el contenido de cada nombre por separado, no todo seguido. quiero que en cada linea me muestre cada nombre.
para diferenciar cada nombre, al final del último carácter de cada uno de ellos, he puesto un '\0', el contenido del char *nombres sería algo así:

pedro\0ana\0jorge\0adan\0alfredo\0deuterio\0pepe\0 iris....

si hago: cout<<nombres<<endl; --> me salen todos los nombres uno detrás de otro: pedro ana jorge adan alfredo deuterio pepe iris
en vez de:
pedro
ana
jorge
adan
...

cómo lo hago? cómo limitar la salida de los nombres[de tal valor a tal otro..]?

sé que es más fácil en arrays o matrices, pero no barajo estas opciones!

por cierto, c++!!!
red_robe está desconectado   Responder Citando
Antiguo 09-may-2008, 12:31   #2 (permalink)
Mephisto está en el buen camino
 
Avatar de Mephisto
 
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 181
Re: cómo separar el contenido de una tupla (cadena larga)?

Esta es una opcion:

http://www.conclase.net/c/librerias/...php?fun=strtok
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
Mephisto está desconectado   Responder Citando
Antiguo 09-may-2008, 12:34   #3 (permalink)
Mephisto está en el buen camino
 
Avatar de Mephisto
 
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 181
Re: cómo separar el contenido de una tupla (cadena larga)?

Por otro lado, te recomiendo que no coloques nulos intermedios, coloca otro separador para que no tengas broncas en la lectura de la cadena ya que '\0' se emplea para identificar el fin de la cadena...
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
Mephisto está desconectado   Responder Citando
Antiguo 09-may-2008, 14:28   #4 (permalink)
red_robe ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2006
Mensajes: 102
Re: cómo separar el contenido de una tupla (cadena larga)?

gracias Mephisto!
la solución que planteas es buena pero...no me interesa que se parta la cadena original, la tengo que mantener unida hasta el final!!! quizás sea mejor pasarme al array de nombres?

hay alguna otra solución?
GR AC IA S!
red_robe está desconectado   Responder Citando
Antiguo 09-may-2008, 15:29   #5 (permalink)
Mephisto está en el buen camino
 
Avatar de Mephisto
 
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 181
Re: cómo separar el contenido de una tupla (cadena larga)?

De hecho con strtok no destruyes tu cadena original, como puedes observar en la liga que te pase, declaras otro apuntador en el que irás guardando cada una de las partes de tu cadena original.

Otra opcion que pudiera ofrecerte es que hagas un for recorriendo cada caracter de tu cadena y cada que encuentres tu separador imprimes el valor que exista...

Código:
for(i=0;*(cadena+i)!='\0';i++){

   if(*(cadena+i)=='|'){

  }

}
Aunque nuevamente como te mencionaba, yo no aconsejaria que tu separador sea un nulo, ya que tendrás problemas con la lectura de tu apuntador... y requieres un buffer intermedio que te permita ir extrayendo cada uno de los componentes de la cadena original...

Espero te ayude esto...
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
Mephisto está desconectado   Responder Citando
Antiguo 09-may-2008, 15:30   #6 (permalink)
Mephisto está en el buen camino
 
Avatar de Mephisto
 
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 181
Re: cómo separar el contenido de una tupla (cadena larga)?

Lo de pasarte a un array, depende de la naturaleza del prog que estas haciendo y de donde obtienes la cadena con los nombres concatenados...
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
Mephisto está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 02:08.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93