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#include <iostream>
#include <string>
using namespace std;
int main(){
string str="5.0000000_43.0000000";
string substr1, substr2;
size_t posicion;
posicion = str.find("_");
substr1 = str.substr(0,posicion);
cout<<substr1<<endl;
substr2 = str.erase(0,posicion+1);
cout<<substr2<<endl;
return 0;
}
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