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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema al delimitar con la función strtok
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al delimitar con la función strtok  (Leído 2,934 veces)
methisblue

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problema al delimitar con la función strtok
« en: 5 Abril 2018, 23:52 pm »

Hola , tengo una duda al delimitar con la función strtok y es que ¿cómo puedo delimitar una frase por las comillas (")?. Es decir, a mi me dan una frase como esta: " Pepe" come frutas , donde me piden que parta esa frase y guarde Pepe en un string sin las comillas, por lo que lo que he hecho ha sido partir "Pepe" en tres con esa función y coger el cacho de en medio que lleva la palabra que busco pero claro , el compilador se me queja cuando pongo esto:  ptr=strtok(const_cast<char*>(name.c_str()) , " " " );  Entonces, alguno sabe alguna forma de poder coger ese nombre ya bien sea del modo que yo he dicho o con otro diferente? Un saludo y gracias de antemano. 


En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: Problema al delimitar con la función strtok
« Respuesta #1 en: 6 Abril 2018, 01:07 am »

pon tu codigo.
pero creo que uno de los errores es que estas poniendo mal el limitador en c/c++ no puedes hacer esto """ para introducir una comillas dentro de comillas haces esto "\""


En línea

methisblue

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema al delimitar con la función strtok
« Respuesta #2 en: 6 Abril 2018, 13:45 pm »

Sii, era eso lo que me pasaba, pero lo he arreglado y ahora si que funciona peor donde deberia guardarse el nombre se guarda un espacio en blanco, adjunto código:
(El código está hecho basándome en quitar las comillas a un nombre pej : "PEPE")


            ptr=strtok(const_cast<char*>(name.c_str()) , " \" " );
            cont=0;
            string nombre[2];
            while((ptr=strtok(NULL , " \" " )) !=NULL){ //Quitar comillas del nombre
                nombre[cont]=ptr;
                cont++;
            }
            name= nombre[1];
En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: Problema al delimitar con la función strtok
« Respuesta #3 en: 6 Abril 2018, 14:08 pm »

primero el código se pone entre etiquetas  GeSHi
segundo en la condición del while no pones la función  strtok

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <string.h>
  4. using namespace std;
  5.  
  6. int main(int argc, char *argv[]) {
  7. string txt = "\"pepe\" como frutas";
  8. const char delim[2] = "\"";
  9. char* token;
  10.  
  11. token = strtok((char*)txt.c_str(), delim);
  12.  
  13. while(token != NULL){
  14. fprintf(stdout, "%s\n", token);
  15. token = strtok(NULL, delim);
  16. }
  17.  
  18. return 0;
  19. }
  20.  

este código me da como salida
pepe
 como frutas

ya que la funcion strtok devuelve un puntero al primer token encontrado en la cadena y devuelve un puntero nulo si no quedan tokens para recuperar
En línea

methisblue

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema al delimitar con la función strtok
« Respuesta #4 en: 6 Abril 2018, 16:05 pm »

Vale, ya esta solucionado. Muchisimas gracias en serio  :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con STRTok, Char y String [C++]
Programación C/C++
ZedGe 6 6,510 Último mensaje 27 Diciembre 2011, 20:08 pm
por ZedGe
[Batch] Delimitar palabras en txt.
Scripting
Dany3j 0 2,250 Último mensaje 6 Febrero 2012, 21:18 pm
por Dany3j
[Python]Delimitar variable?
Scripting
electrodev 4 3,101 Último mensaje 27 Diciembre 2012, 22:32 pm
por electrodev
Problemas con delimitar while
Java
mapers 2 2,649 Último mensaje 21 Junio 2013, 07:46 am
por ~ Yoya ~
Problema con strtok
Programación C/C++
arcanaer 0 1,625 Último mensaje 21 Noviembre 2016, 07:01 am
por arcanaer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines