Hola buenas!
Bien, mi problema es que tengo que introducir una medida en un string en inches y convertirla a metros (Ej: 200 i) pero no se como hacer para identificar las partes del string.
Necesito quitar los 2 últimos dos valores del string para que quede solo el número y pasarlo a int y también quitar todo menos la letra para así reconocer que la medida en la que me lo dan es inches.
Espero que se entienda el problema.
Gracias! :D
La función
int atoi(char*)
convierte una cadena en int. Claro que tiene que terminar en '\0'. Lo más fácil, es que muevas a una variable char la última letra, y borres los últimos 2 caracteres.
Como no sé en qué lenguaje lo estás haciendo, te diré: En C, basta que conviertas la penúltima letra (el espacio), en '\0'. Una vez hecho esto, es como si hubieras borrado el resto. luego, simplemente pásale la cadena a atoi().
En C++ con std::string es lo mismo, solo que puedes usar stoi() en vez de atoi(), ya que el primero trabaja con std::string. Borrar los últimos dos caracteres con std:.string es poniendo std::string::erase() en la función (str.srase(str.size()-2,2);)
Uso c++
Como hago para mover la letra a un char?
Estoy aprendiendo así que si puedes explicármelo muy básico mejor pls xD
Gracias
char letra = str[5];
Con eso cogería el carácter en 5ª posición que es este caso es la letra, pero el usuario podría introducir un número más grande o más pequeño así que la letra no estaría siempre en la 5ª posición (Ej: 2 i)
Como sería para coger el último carácter del string?
Y para coger todos menos los dos últimos?
El último caracter es el que está en el índice (tamaño de la string - 1). str.size()-1
Si quieres solo el numero, tienes 2 opciones. O hacer str.erase(str.size()-2,2), para borrar 2 caracteres empezando desde el penúltimo, o hacer
string t = str.substr(0, str.size()-2);
Empezando desde la posición 0, coge los X caracteres siguientes (str.size()-2), y retorna la cadena equivalente a esa subcadena.
Muchas gracias, me funcionó!!