elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Convertir std::string a valor entero?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Convertir std::string a valor entero?  (Leído 7,872 veces)
t4r0x

Desconectado Desconectado

Mensajes: 92



Ver Perfil
Convertir std::string a valor entero?
« en: 5 Abril 2014, 09:13 am »

Buenas podria alguien decirme como convertir un std::string a un valor entero
el mayor problema que tengo es que la std::string podria tener un valor en representacion de varias bases numericas (10,16) entonces stoi no me funciona ya que me pide la base numerica que no se cual es. alguna solucion? muchas gracias


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Convertir std::string a valor entero?
« Respuesta #1 en: 5 Abril 2014, 10:11 am »

Tú tienes que saber a que base la quieres pasar. El número "123" puede estar en infinitas bases numéricas. Desde la base 4 a infinito.
Tienes que saber tú que base es.
Si tu pregunta es cómo saber la base mínima, sería simplemente mirar cuál es la letra o número más grande.


En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Convertir std::string a valor entero?
« Respuesta #2 en: 5 Abril 2014, 12:17 pm »

Si no sabes la base númerica, el problema es irresoluble.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
t4r0x

Desconectado Desconectado

Mensajes: 92



Ver Perfil
Re: Convertir std::string a valor entero?
« Respuesta #3 en: 5 Abril 2014, 23:23 pm »

Ese es el problema el usuario puede ingresar tanto un valor hexadecimal o un entero base 10, entonces existe alguna funcion que pueda determinar el tipo de base de una cadena?
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Convertir std::string a valor entero?
« Respuesta #4 en: 5 Abril 2014, 23:31 pm »

Vamos a ver. Un programa tiene una finalidad. El usuario no decide, decides tú.

¿Para qué es el valor que ingresa el usuario?
¿Va a ingresarlo con 0x## en caso de ser hexadecimal?
En línea

t4r0x

Desconectado Desconectado

Mensajes: 92



Ver Perfil
Re: Convertir std::string a valor entero?
« Respuesta #5 en: 6 Abril 2014, 00:25 am »

Bueno entonces decido que mi programa pueda determinar el tipo de valor numerico
incluso si es valido o no, solo me gustaria saber si existe una clase o funcion en C/C++
para determinar la base numerica de un valor por favor podrian contestar algo concreto a lo que busco? no quiero volver a crear el tema
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Convertir std::string a valor entero?
« Respuesta #6 en: 6 Abril 2014, 00:31 am »

Lo que se puede hacer es forzar a que el número cumpla una sintaxis específica. En C++ se usa este metodo:
Código
  1. int a = 12; // 12 en base 10
  2. int b = 0x12; // 12 en base 16

Cuando se pone 0x es base 16, y sin el es base 10.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
t4r0x

Desconectado Desconectado

Mensajes: 92



Ver Perfil
Re: Convertir std::string a valor entero?
« Respuesta #7 en: 6 Abril 2014, 00:40 am »

No, yo tengo una std::string que contiene un valor entero ingresado por el usuario este puede ser en base 16 o base 10. por ejemplo:

base 16:
"0x2038483","0x9832874","0x87473A", etc


base 10:
"2873948","9849380","28439",etc

tengo una std::string lo quiero convertir a una variable entero (unsigned long).
stoi esta bien, pero me pide el tipo de base a convertir y queria saber si existe alguna
funcion C/C++ que pueda determinarlo automaticamente o existe una funcion solo para tal proposito y luego usar stoi, creo que hoy si he sido bastante claro, gracias.
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Convertir std::string a valor entero?
« Respuesta #8 en: 6 Abril 2014, 01:32 am »

Código
  1. if(s.substr(0,2)=="0x") /*Es Hexadecimal*/
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Convertir std::string a valor entero?
« Respuesta #9 en: 6 Abril 2014, 02:45 am »

tengo una std::string que contiene un valor entero ingresado por el usuario este puede ser en base 16 o base 10. por ejemplo:

base 16:
"0x2038483","0x9832874","0x87473A", etc

base 10:
"2873948","9849380","28439",etc

tengo una std::string lo quiero convertir a una variable entero (unsigned long).
stoi esta bien, pero me pide el tipo de base a convertir y queria saber si existe alguna
Puedes utilizar la función strtol indicando en la llamada que la base es cero. Con ello la base se decide en base a los caracteres iniciales (revisa el ejemplo en la pagina que indique).

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python 2.7.3] No me convierte string a numero entero
Scripting
Yidu 4 3,287 Último mensaje 19 Febrero 2013, 20:25 pm
por Yidu
Ayuda codigo convertir numero entero a string « 1 2 »
Programación C/C++
NanoTech 15 7,204 Último mensaje 7 Abril 2014, 22:42 pm
por NanoTech
Una funcion que devuelva un entero + un string en c++
Programación C/C++
MellaSystems 4 3,412 Último mensaje 12 Septiembre 2014, 21:15 pm
por MellaSystems
Ayuda no me copia el string entero
Programación C/C++
PabloPbl 2 2,236 Último mensaje 11 Diciembre 2015, 04:39 am
por PabloPbl
Solucionado - ¿Por qué no me imprime el valor entero en cout?. (char)
Programación C/C++
TØtti 4 4,437 Último mensaje 2 Febrero 2016, 09:35 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines