Existe-t-il une méthode qui convertit la chaîne en un entier non signé? _ultoa existe mais n'a pas pu trouver la version verset étau ...comment convertir ascii en unsigned int
Répondre
std::strtoul()
est l'un. Et puis encore, il y a les anciens comme atoi()
.
Boost fournit lexical_cast.
#include <boost/lexical_cast.hpp>
[...]
unsigned int x = boost::lexical_cast<unsigned int>(strVal);
Alternativement, vous pouvez utiliser un stringstream (qui est essentiellement ce que lexical_cast-t sous les couvertures):
#include <sstream>
[...]
std::stringstream s(strVal);
unsigned int x;
s >> x;
Et si vous voulez une interprétation non décimale, voir aussi: http://stackoverflow.com/questions/1070497/c-convert- hex-string-to-signed-integer – Martin
Suis-je la seule personne qui aime l'insertion de flux, mais déteste l'extraction de flux? J'utiliserais des fonctions (comme celle-là, mais pour être honnête j'utiliserais probablement encore atoi sans réfléchir) à chaque fois. – Steve314
Ouais, l'extraction de flux est assez moche, d'autant plus que vous ne pouvez pas initialiser les constantes avec. Il est également un peu plus puissant, car vous pouvez utiliser des manipulateurs pour changer votre base, etc. – Martin
Que diriez-vous int atoi (const char * str)?
string s("123");
unsigned u = (unsigned)atoi(s.c_str());
Ce n'est pas une bonne suggestion du tout. Il a spécifiquement demandé "non signé int" et mentionne des choses comme "_ultoa". L'affiche connaît atoi(), atol(), etc. Ces fonctions sont toutes signées et reconnaissent le symbole -, peuvent gérer le débordement, etc. La bonne réponse est d'utiliser des fonctions comme strtoul. – Armentage
sscanf fera ce que vous voulez.
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
J'ai détesté la famille scanf même en C. Il n'a jamais fait ce que je voulais faire, et la plupart du temps cela a causé un bug. C'est bon si vous savez que la chaîne correspond à vos exigences - si vous l'avez déjà vérifié ou extrait avec un autre code - mais dans ce cas, pourquoi ne pas simplement utiliser atoi ou autre chose? Toute personne utilisant une fonction scanf-family - eh bien, il y a des crimes où aucune punition ne peut jamais être trop sévère ;-) – Steve314
Cela devrait être "N'importe qui utilisant une fonction scanf-family en C++ - ..." – Steve314
Il fonctionne si vous passez par _atoi64
unsigned long l = _atoi64 (str);
- 1. Comment convertir int [] en byte []
- 2. Comment convertir Scope_Identity() en int?
- 3. C/C++: Comment convertir 6bit ASCII en 7bit ASCII
- 4. sql server 4 octets unsigned int
- 5. Comment convertir une chaîne en ascii en binaire en C#?
- 6. Comment convertir les IDN en ASCII?
- 7. Comment convertir les photos TimePrimitive en int?
- 8. Comment convertir un int en NSString?
- 9. Comment convertir une valeur ASCII en un caractère dans .NET
- 10. Convert struct en unsigned char *
- 11. Convertir IntPtr en int * en C#?
- 12. Convertir BSTR à int
- 13. AS3: Comment convertir le code ASCII en caractères actionscript
- 14. En C#, Comment convertir une chaîne hexadécimale en int?
- 15. Comment convertir l'adresse d'un int en pointeur char en C?
- 16. Convertir les caractères étendus en int
- 17. IronPython - Convertir int en tableau byte
- 18. Convertir int à CGFloat
- 19. Comment convertir un vecteur <pair <int,int>> en multimap <int,int> efficacement?
- 20. Comment écrire un littéral int abrégé int?
- 21. Comment convertir Int/Decimal pour flotter en C#?
- 22. Comment convertir un objet en int dans un convertisseur?
- 23. Convertir un domaine non ASCII en compatible SMTP
- 24. convertir Dictionary <int, Enumerable> en Dictionary <int, Enumerable> en inversant le contenu
- 25. visual C++: convertir int en pointeur de chaîne
- 26. ASCII à DEC en PHP
- 27. Convertir SQL Server signé int en binaire (4)
- 28. Comment convertir un format de fichier d'Unicode en ASCII en utilisant Python?
- 29. Comment convertir une liste de valeurs ascii en une chaîne en python?
- 30. Conversion de décimal en caractère ASCII
atoi ne fait pas non signé cependant, non? Dans le Windows CRT, il retournera une erreur (ERANGE) en cas de débordement. – Cheeso
Cheeso, oui, pour ce que je peux dire par le "i", c'est int ;-) –