Esiste un metodo che converte la stringa in unsigned int? _ultoa esiste ma non è riuscito a trovare la versione di verse di vice versa ...come convertire ascii in unsigned int
risposta
std::strtoul()
è quello. E poi ancora ci sono quelli vecchi come atoi()
.
Boost fornisce lexical_cast.
#include <boost/lexical_cast.hpp>
[...]
unsigned int x = boost::lexical_cast<unsigned int>(strVal);
In alternativa, è possibile utilizzare uno stringstream (che è fondamentalmente ciò che lexical_cast fa sotto le coperte):
#include <sstream>
[...]
std::stringstream s(strVal);
unsigned int x;
s >> x;
E se vuoi l'interpretazione non decimale, vedi anche: http://stackoverflow.com/questions/1070497/c-convert- hex-string-to-signed-integer – Martin
Sono l'unica persona che ama l'inserimento del flusso, ma odia l'estrazione del flusso? Userei le funzioni (come quella di potenziamento, anche se a dire il vero probabilmente userò ancora atoi senza pensare) ogni volta. – Steve314
Sì, l'estrazione del flusso è piuttosto brutta, soprattutto perché non è possibile inizializzare le costanti con esso. È anche un po 'più potente, dato che puoi usare i manipolatori per cambiare la tua base, ecc. – Martin
Come su int atoi (const char * str)?
string s("123");
unsigned u = (unsigned)atoi(s.c_str());
Questo non è affatto un buon suggerimento. Ha chiesto specificamente "unsigned int" e menziona cose come "_ultoa". Il poster sa di atoi(), atol(), ecc. Queste funzioni sono tutte firmate e riconoscono il simbolo -, potrebbero gestire l'overflow, ecc. La risposta corretta è usare funzioni come strtoul. – Armentage
sscanf farà quello che vuoi.
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
Ho odiato la famiglia scanf anche di nuovo in C. Non ha mai fatto ciò che volevo che facesse, e la maggior parte delle volte ha causato un bug. Va bene se sai che la stringa corrisponde ai tuoi requisiti - se hai già controllato o estratto con altro codice - ma in tal caso, perché non usare solo atoi o altro? Chiunque usi una funzione della famiglia scanf - beh, ci sono alcuni crimini in cui nessuna punizione può mai essere troppo dura ;-) – Steve314
Che dovrebbe essere "Chiunque usi una funzione della famiglia scanf in C++ - ..." – Steve314
Funziona se si va via _atoi64
unsigned long l = _atoi64 (str);
- 1. Come convertire un carattere ASCII nel suo valore int ASCII?
- 2. C++ uint, unsigned int, int
- 3. Come leggere unsigned int in Javascript?
- 4. Come convertire int * in int
- 5. Come convertire IDN in ASCII?
- 6. Python/Numpy: Convertire elenco di Caccio a unsigned int
- 7. Trabocco di Unsigned Int
- 8. volatile unsigned int * const
- 9. Java - Change int to ascii
- 10. Differenza tra int unsigned e unsigned in C++
- 11. comportamento gcc strano con unsigned int
- 12. Come convertire unsigned long in stringa
- 13. C# unsigned int valore predefinito
- 14. JNI: conversione di unsigned int in jint
- 15. unsigned long long int pow
- 16. sprintf e unsigned int array in C
- 17. Come convertire l'array int in int?
- 18. differenza tra unsigned short int e unsigned short
- 19. Come convertire int in nsindexpath?
- 20. Come convertire QString in int?
- 21. come posso convertire la stringa unicode in ASCII in java
- 22. Come stampare un long int unsigned con printf in C?
- 23. Conversione in Char/String da Ascii Int in Swift
- 24. La vera differenza tra "int" e "unsigned int"
- 25. Come convertire il char unsigned * in std :: string in C++?
- 26. Come convertire 'unsigned long' in string in java
- 27. QSpinBox con unsigned int per ingresso esadecimale
- 28. Come convertire un valore ASCII in un carattere in .NET
- 29. Conversione di char unsigned in int e short
- 30. Come convertire int [] a int [,] - C#
tuttavia, atoi non esegue la firma, giusto? Nel CRT di Windows, verrà restituito un errore (ERANGE) in caso di overflow. – Cheeso
Cheeso, sì, per quello che posso dire con "io", è int ;-) –