Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/06/2010, 20:33
AlanChavez
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 6 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