Autor
|
Tema: Separar string Ayuda (Leído 7,921 veces)
|
prometheus48
Desconectado
Mensajes: 176
Making a Distro...
|
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
Mensajes: 301
Siempre aprendiendo
|
Hola Para eso puedes usar la función strtokSaludos
|
|
|
En línea
|
Breakbeat como forma de vida
|
|
|
prometheus48
Desconectado
Mensajes: 176
Making a Distro...
|
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
Mensajes: 50
|
|
|
|
En línea
|
|
|
|
satu
Desconectado
Mensajes: 301
Siempre aprendiendo
|
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
Mensajes: 176
Making a Distro...
|
Mejor os dejo el 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:\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
Mensajes: 745
げんしけん - Hikkikomori FTW!!!
|
Eso es porque strok pertenece a cstring. #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
Mensajes: 176
Making a Distro...
|
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
Mensajes: 745
げんしけん - Hikkikomori FTW!!!
|
si lo quieres hacer con vectore, pues bueno aqui te dejo un ejemplo que acabo de hacer: vector<string> split(string str, char token) { vector<string> res; string tmp; for ( unsigned int i = 0; i <= str.length(); i++ ) { if ( str[i] == token || i == str.length() ) { if ( str[i + 1] == token ) continue; res.push_back(tmp); tmp.erase(); i++; } tmp += str[i]; } return res; }
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
Mensajes: 373
|
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 #include <iostream> #include <string> using namespace std; int main() { char inp[20]; char *pch; cout<<"Prueba:\n"; cin.getline(inp,5); // ingreso de cadena pch =strtok(inp ,"."); /* Primera llamada -> primer token -> primer argumento la cadena a separar*/ printf("%s\n",pch ); // imprime el primer token while((pch = strtok(NULL ,"."))!=NULL ) /* Segunda llamada y posteriores, en el primer argumento va NULL */ { printf("%s\n",pch ); // imprime los tokens posteriores } return 0; }
Puse los printf xq no tengo idea de como funciona el cout (no se C++) Saludos
|
|
« Última modificación: 18 Mayo 2012, 04:10 am por durasno »
|
En línea
|
Ahorrate una pregunta, lee el man
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Separar string con strtok
Programación C/C++
|
janus_gf
|
0
|
3,490
|
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,289
|
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,441
|
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,591
|
15 Junio 2011, 03:18 am
por Novlucker
|
|
|
Ayuda con separar numeros de un string
PHP
|
landerzx
|
4
|
5,588
|
23 Noviembre 2012, 18:49 pm
por landerzx
|
|