Autor
|
Tema: Convertir std::string a valor entero? (Leído 7,794 veces)
|
t4r0x
Desconectado
Mensajes: 92
|
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
Mensajes: 3.412
ASMático
|
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
Mensajes: 1.211
|
Si no sabes la base númerica, el problema es irresoluble.
|
|
|
En línea
|
|
|
|
t4r0x
Desconectado
Mensajes: 92
|
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
Mensajes: 3.412
ASMático
|
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
Mensajes: 92
|
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
Mensajes: 1.211
|
Lo que se puede hacer es forzar a que el número cumpla una sintaxis específica. En C++ se usa este metodo: int a = 12; // 12 en base 10 int b = 0x12; // 12 en base 16
Cuando se pone 0x es base 16, y sin el es base 10.
|
|
|
En línea
|
|
|
|
t4r0x
Desconectado
Mensajes: 92
|
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
Mensajes: 3.412
ASMático
|
if(s.substr(0,2)=="0x") /*Es Hexadecimal*/
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Python 2.7.3] No me convierte string a numero entero
Scripting
|
Yidu
|
4
|
3,281
|
19 Febrero 2013, 20:25 pm
por Yidu
|
|
|
Ayuda codigo convertir numero entero a string
« 1 2 »
Programación C/C++
|
NanoTech
|
15
|
7,167
|
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,367
|
12 Septiembre 2014, 21:15 pm
por MellaSystems
|
|
|
Ayuda no me copia el string entero
Programación C/C++
|
PabloPbl
|
2
|
2,222
|
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,374
|
2 Febrero 2016, 09:35 am
por Eternal Idol
|
|