¿Hay un método que convierta cadena a unsigned int? _ultoa existe, pero no pudo encontrar la versión del verso de tornillo ...cómo convertir ascii a unsigned int
Respuesta
std::strtoul()
es la única. Y luego están los viejos como atoi()
.
Boost proporciona lexical_cast.
#include <boost/lexical_cast.hpp>
[...]
unsigned int x = boost::lexical_cast<unsigned int>(strVal);
Alternativamente, se puede utilizar un stringstream (que es básicamente lo que hace lexical_cast bajo las sábanas):
#include <sstream>
[...]
std::stringstream s(strVal);
unsigned int x;
s >> x;
Y si quiere una interpretación no decimal, vea también: http://stackoverflow.com/questions/1070497/c-convert- Hex-string-to-signed-integer – Martin
¿Soy la única persona a la que le encanta la inserción de secuencias, pero detesta la extracción de secuencias? Yo usaría funciones (como este impulso, aunque para ser honesto, probablemente todavía usaría atoi sin pensar) todo el tiempo. – Steve314
Sí, la extracción de flujo es bastante fea, especialmente porque no puede inicializar constantes con ella. También es bastante más potente, ya que puedes usar manipuladores para cambiar tu base, etc. – Martin
¿Qué tal int atoi (const char * str)?
string s("123");
unsigned u = (unsigned)atoi(s.c_str());
Esta no es una buena sugerencia. Específicamente, solicitó "unsigned int" y menciona cosas como "_ultoa". El póster sabe acerca de atoi(), atol(), etc. Todas estas funciones están firmadas y reconocen el símbolo -, pueden manejar el desbordamiento, etc. La respuesta correcta es usar funciones como strtoul. – Armentage
sscanf va a hacer lo que quiere.
char* myString = "123"; // Declare a string (c-style)
unsigned int myNumber; // a number, where the answer will go.
sscanf(myString, "%u", &myNumber); // Parse the String into the Number
printf("The number I got was %u\n", myNumber); // Show the number, hopefully 123
Odiaba a la familia scanf incluso en C. Nunca hizo lo que yo quería que hiciera, y la mayoría de las veces causaba un error. Está bien si sabe que la cadena coincide con sus requisitos, si ya la ha revisado o la ha extraído con otro código, pero en ese caso, ¿por qué no simplemente usa atoi o lo que sea? Cualquiera que use una función scanf-family - bueno, hay algunos crímenes donde ningún castigo puede ser demasiado severo ;-) – Steve314
Eso debería ser "Cualquier persona que use una función scanf-family en C++ - ..." – Steve314
Funciona si vas a través de _atoi64
largo sin signo l = _atoi64 (str);
- 1. ¿Convertir ascii a int?
- 2. C - unsigned int a unsigned char array conversion
- 3. Python/Numpy: Convertir la lista de Bools a unsigned int
- 4. C++ uint, unsigned int, int
- 5. Compare int y unsigned int
- 6. Convertir codificación ascii a int y viceversa en python (rápidamente)
- 7. Cómo convertir int * a int
- 8. ¿Cómo convertir IDN a ASCII?
- 9. Unsigned Int en Java
- 10. JNI: conversión de unsigned int a jint
- 11. Desbordamiento de Unsigned Int
- 12. volatile unsigned int * const
- 13. Cómo convertir un carácter ascii en un int en C
- 14. lectura 'unsigned int' usando 'cin'
- 15. int dividido por unsigned int causando vuelco
- 16. Convertir single-char a int
- 17. Convertir bytes ASCII [] a String
- 18. ¿Cómo leer unsigned int en Javascript?
- 19. C# unsigned int valor predeterminado
- 20. ¿Cómo puedo convertir Ascii extendido a System.String?
- 21. Cómo convertir caracteres ASCII a CGKeyCode?
- 22. Cómo convertir a entero int
- 23. Cómo convertir int [] a byte []
- 24. Cómo convertir int a QString?
- 25. Cómo convertir entero a int?
- 26. C++ límite de unsigned int a través de la plantilla
- 27. ¿Convertir int a cadena?
- 28. ¿Convertir de cadena ASCII codificada en hexadecimal a ASCII simple?
- 29. Convertir iterador a int
- 30. Convertir 4 bytes a int
atoi no funciona sin firmar, ¿verdad? En Windows CRT, devolverá un error (ERANGE) en caso de desbordamiento. – Cheeso
Cheeso, sí, por lo que puedo decir por la "i", es int ;-) –