Gibt es eine Methode, die String in unsigned int konvertiert? _ultoa existiert, konnte aber nicht die Schraubstockversion finden ...wie ascii in unsigned int konvertieren
Antwort
std::strtoul()
ist die eine. Und dann wieder die alten wie atoi()
.
Boost bietet lexical_cast.
#include <boost/lexical_cast.hpp>
[...]
unsigned int x = boost::lexical_cast<unsigned int>(strVal);
Alternativ können Sie auch eine string verwenden (was im Grunde ist das, was lexical_cast unter den Abdeckungen der Fall ist):
#include <sstream>
[...]
std::stringstream s(strVal);
unsigned int x;
s >> x;
Und wenn Sie nichtdezimale Interpretation wollen, siehe auch: http://stackoverflow.com/questions/1070497/c-convert- hex-string-to-signed-integer – Martin
Bin ich die einzige Person, die Stream-Insertion liebt, aber Stream-Extraktion hasst? Ich würde Funktionen (wie diese boost one, obwohl um ehrlich zu sein würde ich wahrscheinlich immer noch atoi ohne zu denken) jedes Mal verwenden. – Steve314
Ja, die Stream-Extraktion ist ziemlich hässlich, vor allem, weil man damit keine Konstanten initialisieren kann. Es ist aber auch ein bisschen leistungsfähiger, da Sie Manipulatoren verwenden können, um Ihre Basis usw. zu ändern. – Martin
Wie wäre es int atoi (const char * str)?
string s("123");
unsigned u = (unsigned)atoi(s.c_str());
Dies ist überhaupt kein guter Vorschlag. Er wird speziell nach "unsigned int" gefragt und erwähnt Dinge wie "_ultoa". Das Poster kennt atoi(), atol() usw. Diese Funktionen sind alle signiert und erkennen das - Symbol, können mit Überlauf umgehen, etc. Die richtige Antwort ist die Verwendung von Funktionen wie strtoul. – Armentage
sscanf wird tun, was Sie wollen.
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
Ich hasste die Scanf-Familie sogar in C. Es hat nie getan, was ich wollte, und meistens verursachte es einen Bug. Es ist in Ordnung, wenn Sie wissen, dass die Zeichenfolge Ihren Anforderungen entspricht - wenn Sie sie bereits überprüft oder mit anderem Code extrahiert haben - aber in diesem Fall, warum nicht einfach atoi oder was auch immer verwenden? Wer eine scanf-family-Funktion nutzt - nun, es gibt einige Verbrechen, bei denen keine Strafe jemals zu hart sein kann ;-) – Steve314
Das sollte sein "Jeder, der eine scanf-family-Funktion in C++ benutzt - ..." – Steve314
Es funktioniert, wenn Sie über _atoi64
unsigned long l = _atoi64 (str) gehen;
- 1. AWK konvertieren große unsigned int zu signed int (binär)
- 2. Convert BIGINT UNSIGNED INT
- 3. unsigned int in unsigned short int mit Bitoperator
- 4. Unsigned Int in Java
- 5. Converting ascii substr zu int
- 6. Konvertieren von unsigned char in int und kurz
- 7. Konvertieren von String in unsigned int gibt das falsche Ergebnis
- 8. Konvertieren von Hexadezimalzeichen in unsigned int Problem C++
- 9. Warum (int) ((unsigned int) ((int) v)?
- 10. Android signed int zu unsigned Int-Konvertierung
- 11. C - printf unsigned int
- 12. Varchar in Ascii konvertieren
- 13. konvertieren Dezimalzahlen in Ascii
- 14. Umwandlung eines Ascii in Int
- 15. Kann ich ein unsigned char * in einen unsigned int * umwandeln?
- 16. unsigned int und unsigned lange Xcode Warnungen in NSLogs
- 17. unsigned int vs unsigned short Unterschied in C++
- 18. Wie int [] konvertieren int [,] - C#
- 19. konvertieren unsigned char * in String
- 20. Wie konvertiert man ein unsigned long int in QVariant
- 21. Wie int * in int zu konvertieren
- 22. Wie printf ein unsigned long long int (der Formatbezeichner für unsigned long long int)?
- 23. Unsigned int zu signierten in php
- 24. sprintf und unsigned int array in C
- 25. NSString ascii konvertieren in NSString
- 26. Unterschied zwischen unsigned short int und unsigned short
- 27. Byte-Array unsigned int in Java
- 28. unsigned long lang VS unsigned long long int
- 29. Konvertieren von Double in unsigned char?
- 30. Int oder Unsigned Int float, ohne eine Warnung zu erhalten
Atoi nicht tun, obwohl nicht signiert, richtig? Im Windows-CRT wird bei einem Überlauf ein Fehler (ERANGE) zurückgegeben. – Cheeso
Cheeso, ja, für das, was ich mit dem "i" sagen kann, es ist int ;-) –