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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Separar string Ayuda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Separar string Ayuda  (Leído 8,051 veces)
prometheus48

Desconectado Desconectado

Mensajes: 176


Making a Distro...


Ver Perfil
Separar string Ayuda
« en: 17 Mayo 2012, 18:03 pm »

Hola,

Pues eso, en mi programa quiero separar el string que utilizo como entrada del usuario,por ejemplo el usuario escribe: "di hola", y despues separo el string en "di" y "hola", aunque mejor sería que fuera una función en la que puedes elegir el separador, como:
separa(entrada,".") o separa(entrada,"a")

Gracias y Saludos.

Prometheus.


En línea

"Si tú tienes una manzana, y yo otra, y las intercambiamos, tu sigues teniendo una manzana, y yo sigo teniendo una manzana.
Pero, si tu tienes una idea, y yo otra, y nos las intercambiamos, tu tienes dos ideas, y yo tengo dos ideas"
The knowledge is free
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Separar string Ayuda
« Respuesta #1 en: 17 Mayo 2012, 19:36 pm »

Hola

Para eso puedes usar la función strtok

Saludos


En línea

Breakbeat como forma de vida
prometheus48

Desconectado Desconectado

Mensajes: 176


Making a Distro...


Ver Perfil
Re: Separar string Ayuda
« Respuesta #2 en: 17 Mayo 2012, 19:51 pm »

No funciona:

Dice: strtok was not declared in this scope.
En línea

"Si tú tienes una manzana, y yo otra, y las intercambiamos, tu sigues teniendo una manzana, y yo sigo teniendo una manzana.
Pero, si tu tienes una idea, y yo otra, y nos las intercambiamos, tu tienes dos ideas, y yo tengo dos ideas"
The knowledge is free
exel

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Separar string Ayuda
« Respuesta #3 en: 17 Mayo 2012, 20:13 pm »

Observa:
http://c.conclase.net/librerias/?ansifun=strtok
En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Separar string Ayuda
« Respuesta #4 en: 17 Mayo 2012, 20:15 pm »

Hola

Tienes que incluir string.h si estás en C o cstring si estás en C++

Saludos
En línea

Breakbeat como forma de vida
prometheus48

Desconectado Desconectado

Mensajes: 176


Making a Distro...


Ver Perfil
Re: Separar string Ayuda
« Respuesta #5 en: 17 Mayo 2012, 20:39 pm »

Mejor os dejo el código:
Código:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    char inp[20];
    char *pch;
    cout<<"Prueba:\n";
    bool running = true;
    while(running)
    {
        cout<<">>>";
        cin.getline(inp,5);
        pch = strtok(inp,".");
    }
    return 0;
}

Salida del compilador:
Código:
C:\Users\Samuel\Documents\Programming\C++\Chocolate\main.cpp||In function 'int main()':|
C:\Users\Samuel\Documents\Programming\C++\Chocolate\main.cpp|16|error: 'strtok' was not declared in this scope|
||=== Build finished: 1 errors, 0 warnings ===|
En línea

"Si tú tienes una manzana, y yo otra, y las intercambiamos, tu sigues teniendo una manzana, y yo sigo teniendo una manzana.
Pero, si tu tienes una idea, y yo otra, y nos las intercambiamos, tu tienes dos ideas, y yo tengo dos ideas"
The knowledge is free
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Separar string Ayuda
« Respuesta #6 en: 17 Mayo 2012, 21:10 pm »

Eso es porque strok pertenece a cstring.

Código
  1. #include <cstring>
Ya lo habia mencionado satu, no string, cstring o string.h aunque esta última pues no hace parte de la librería standard de C++
Saludos
« Última modificación: 17 Mayo 2012, 21:22 pm por RyogiShiki » En línea

prometheus48

Desconectado Desconectado

Mensajes: 176


Making a Distro...


Ver Perfil
Re: Separar string Ayuda
« Respuesta #7 en: 17 Mayo 2012, 22:15 pm »

Bueno las función strtok() no me gusta, osea, algo como esto:

vector<string> split()
{
    // La función.
}

vector<string> inp;

int main()
{
string inp = "mov.ax.4";
split(inp,"."); //Guarda en inp[0] "mov" en inp[1] "ax" y en inp [2] "4"
}


No he podido usar strtok correctamente de todas formas.

Gracias Igualmente.

Saludos!
En línea

"Si tú tienes una manzana, y yo otra, y las intercambiamos, tu sigues teniendo una manzana, y yo sigo teniendo una manzana.
Pero, si tu tienes una idea, y yo otra, y nos las intercambiamos, tu tienes dos ideas, y yo tengo dos ideas"
The knowledge is free
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Separar string Ayuda
« Respuesta #8 en: 18 Mayo 2012, 01:08 am »

si lo quieres hacer con vectore, pues bueno aqui te dejo un ejemplo que acabo de hacer:

Código
  1. vector<string> split(string str, char token) {
  2.    vector<string> res;
  3.    string tmp;
  4.    for ( unsigned int i = 0; i <= str.length(); i++ ) {
  5.        if ( str[i]  == token || i == str.length() ) {
  6.            if ( str[i + 1] == token ) continue;
  7.            res.push_back(tmp);
  8.            tmp.erase();
  9.            i++;
  10.        }
  11.        tmp += str[i];
  12.    }
  13.    return res;
  14. }

Espero te pueda servir de guia.

He intentado simular lo mejor posible el comportamiento del método split() en Ruby.

Saludos
« Última modificación: 18 Mayo 2012, 07:19 am por RyogiShiki » En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Separar string Ayuda
« Respuesta #9 en: 18 Mayo 2012, 04:08 am »

Hola! no pudist usar strtok porque no lo estas usando bien. Aparte de leer el link q te mando exel http://c.conclase.net/librerias/?ansifun=strtok falta agregar algo mas(q el link no lo dice pero si lo muestra en el ejemplo): cuando se llama por primera ves a strtok, en el primer argumento se pone la cadena q se va a separar en tokens. PERO cuando se llama x segunda vez(y posteriores) en el primer argumento hay q poner NULL

Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.    char inp[20];
  9.    char *pch;
  10.    cout<<"Prueba:\n";
  11.    cin.getline(inp,5); // ingreso de cadena
  12.    pch=strtok(inp,"."); /* Primera llamada -> primer token -> primer argumento la cadena a separar*/
  13.    printf("%s\n",pch); // imprime el primer token
  14.    while((pch = strtok(NULL,"."))!=NULL) /* Segunda llamada y posteriores, en el primer argumento va NULL */
  15.    {
  16.        printf("%s\n",pch); // imprime los tokens posteriores
  17.    }
  18.    return 0;
  19. }

Puse los printf xq no tengo idea de como funciona el cout :P (no se C++)

Saludos
« Última modificación: 18 Mayo 2012, 04:10 am por durasno » En línea

Ahorrate una pregunta, lee el man
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Separar string con strtok
Programación C/C++
janus_gf 0 3,522 Último mensaje 21 Febrero 2011, 09:19 am
por janus_gf
Separar termino de un string y hacer distributiva
.NET (C#, VB.NET, ASP)
Edu 0 2,298 Último mensaje 20 Abril 2011, 03:28 am
por Edu
[Solucionado] Comparar un String con cada una de las partes de otro String « 1 2 »
.NET (C#, VB.NET, ASP)
Segurida 13 12,522 Último mensaje 14 Mayo 2011, 18:52 pm
por Segurida
como puedo hacer q mi JTextArea me imprima mas de un dato string datos string
Dudas Generales
alda19 1 5,683 Último mensaje 15 Junio 2011, 03:18 am
por Novlucker
Ayuda con separar numeros de un string
PHP
landerzx 4 5,604 Último mensaje 23 Noviembre 2012, 18:49 pm
por landerzx
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines