Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: pablovg9 en 19 Julio 2015, 22:13 pm



Título: Problema con strings
Publicado por: pablovg9 en 19 Julio 2015, 22:13 pm
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


Título: Re: Problema con strings
Publicado por: ivancea96 en 19 Julio 2015, 22:20 pm
La función
Código
  1. 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);)


Título: Re: Problema con strings
Publicado por: pablovg9 en 19 Julio 2015, 22:26 pm
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


Título: Re: Problema con strings
Publicado por: ivancea96 en 19 Julio 2015, 22:28 pm
Código
  1. char letra = str[5];


Título: Re: Problema con strings
Publicado por: pablovg9 en 19 Julio 2015, 22:40 pm
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?



Título: Re: Problema con strings
Publicado por: ivancea96 en 19 Julio 2015, 23:21 pm
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
  1. 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.


Título: Re: Problema con strings
Publicado por: pablovg9 en 20 Julio 2015, 00:30 am
Muchas gracias, me funcionó!!