Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Comando cut c++

Estas en el tema de Comando cut c++ en el foro de C/C++ en Foros del Web. Hola a todos. Os expongo mi “problema” por si alguien me puede echar un cable: Tengo una variable string que contiene algo como esto: 5.0000000_43.0000000 ...
  #1 (permalink)  
Antiguo 10/06/2010, 18:24
 
Fecha de Ingreso: junio-2010
Mensajes: 3
Antigüedad: 11 años, 11 meses
Puntos: 0
Comando cut c++

Hola a todos.

Os expongo mi “problema” por si alguien me puede echar un cable:

Tengo una variable string que contiene algo como esto: 5.0000000_43.0000000

Lo que quiero es separar el 5 y meterlo en una variable, por un lado y el 43 meterlo en otra variable.

En el titulo pongo “comando cut”. Sé que en unix existe este comando que haría a la perfección lo que quiero, pero en c++ existe algo parecido?¿

Mi objetivo es hacerlo con poco código.

Cualquier ayuda que reciba de vuestra parte será muy bien recibida y muy agradecida.

Un saludo.
  #2 (permalink)  
Antiguo 10/06/2010, 20:33
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 11 años, 11 meses
Puntos: 95
Respuesta: Comando cut c++

Esa variable string, solamente va a contener 2 elementos? o es una variable string que puede contener multiples elementos?
a esto me refiero, si nadamas tienes 2 elementos
5.0000000_43.0000000
2.0000000_12.0000000


El siguiente codigo puede ayudarte
Código C++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7. string str="5.0000000_43.0000000";
  8. string substr1, substr2;
  9. size_t posicion;
  10. posicion = str.find("_");
  11.  
  12. substr1 = str.substr(0,posicion);
  13. cout<<substr1<<endl;
  14.  
  15. substr2 = str.erase(0,posicion+1);
  16. cout<<substr2<<endl;
  17. return 0;
  18.  
  19. }

Ahi te va el codigo explicadito:
Estoy utilizando la librería string para hacer todas las operaciones necesarias.
Lo primero que hago es buscar el caracter "_" utilizando la funcion string::find
dicha función devuelve una variable de tipo size_t con la posicion del caracter encontrado.
Posteriormente, estoy utilizando la funcion string::substr para crear una sub-cadena, de la cadena original.
Esta funcion, acepta la posicion inicial y la posicion de hasta donde quieres crear la subcadena.

substr(posicion inicial, posicion final)
Entonces le estoy pasando como argumentos el 0 (el inicio de la cadena) y la variable posicion, que me da la posicion del caracter "_" y se lo asigno a una nueva variable de tipo string.

Posteriormente,
utilizo el comando string::erase para eliminar los residuos de la primer cadena y lo restante asignarselo a substr2
erase, acepta los mismos argumentos que substr.
Ahora le paso posicion+1, porque quiero que tambien elimine el "_", si solamente pasaramos posicion, entonces substr2 = "_43.00000000"

Espero que todo haya quedado claro
  #3 (permalink)  
Antiguo 11/06/2010, 04:01
 
Fecha de Ingreso: junio-2010
Mensajes: 3
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Comando cut c++

Hola AlanChavez.

Lo primero darte las GRACIAS!!! por haberte molestado y contestado y lo segundo, respondiendo a tu pregunta, sí, solo va a contener dos elementos:

5.0000000_43.0000000
7.0000000_12.0000000
5.0000000_9.0000000
.
.
.

Voy a probar tu codigo.

Saludos.
  #4 (permalink)  
Antiguo 11/06/2010, 15:39
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 11 años, 11 meses
Puntos: 95
Respuesta: Comando cut c++

No es ninguna molestia y espero que el codigo haya sido de utilidad.
Posteriormente puedes utilizar un cast, para convertir la cadena en float, si es que quieres manejar los numeros (o entero, depende de lo que quieras utilizar)

Para hace el cast, nadamas pones
(tipo_de_dato)variable_a_cambiar

por ejemplo si tenemos una variable tipo string que almacena
str numero="2";
entonces yo puedo hacer
cout<<(int)numero+3;
Y debe imprimir el numero 5.
espero haya quedado claro tambien.
  #5 (permalink)  
Antiguo 13/06/2010, 17:21
 
Fecha de Ingreso: junio-2010
Mensajes: 3
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Comando cut c++

Hola AlanChavez.

El código es perfecto.

Lo del cast tambien me será útil.

Gracias de nuevo y hasta pronto!!!

Etiquetas: comando, cut
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:17.