Problema con strings

Iniciado por pablovg9, 19 Julio 2015, 22:13 PM

0 Miembros y 1 Visitante están viendo este tema.

pablovg9

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

ivancea96

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);)

pablovg9

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

ivancea96


pablovg9

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?


ivancea96

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
Código (cpp) [Seleccionar]
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.

pablovg9

Muchas gracias, me funcionó!!