Maison >développement back-end >C++ >Comment convertir efficacement des nombres en chaînes et des chaînes en nombres en C ?

Comment convertir efficacement des nombres en chaînes et des chaînes en nombres en C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-18 10:59:08686parcourir

How to Efficiently Convert Numbers to Strings and Strings to Numbers in C  ?

Conversion de nombres en chaînes et vice versa en C

La conversion entre nombres et chaînes est une tâche courante en programmation. En C , plusieurs méthodes peuvent être utilisées, y compris celles intégrées au standard C 11 et aux versions antérieures.

Méthodes de conversion C 03

En C 03, l'istingstream et Les classes ostringstream peuvent être utilisées respectivement pour les conversions de nombre en chaîne et de chaîne en nombre. Par exemple :

int num = 123;
stringstream ss;
ss << num;
string str = ss.str();

Pour reconvertir une chaîne en entier :

string str = "123";
stringstream ss(str);
int num;
ss >> num;

Fonctions de conversion C 11

C 11 a introduit plusieurs fonctions dédiées dans le en-tête pour la conversion entre les chaînes et les types numériques :

String to Numeric

float stof(const string& str);
double stod(const string& str);
long double stolet(const string& str);
int stoi(const string& str, int base = 10);
long stol(const string& str, int base = 10);
unsigned long stoul(const string& str, int base = 10);
long long stoll(const string& str, int base = 10);
unsigned long long stoull(const string& str, int base = 10);

Ces fonctions tentent de convertir la chaîne donnée en type numérique spécifié. En cas de succès, ils renvoient la valeur convertie, et sinon, ils lèvent une exception.

Numérique en chaîne

string to_string(int val);
string to_string(unsigned val);
string to_string(long val);
string to_string(unsigned long val);
string to_string(long long val);
string to_string(unsigned long long val);
string to_string(float val);
string to_string(double val);
string to_string(long double val);

Ces fonctions convertissent la valeur numérique donnée en une représentation sous forme de chaîne.

Il est important de noter que les fonctions de conversion numérique C 11 ont des implications en termes de performances, notamment en termes de précision. Pour des exigences de précision plus élevées, il est recommandé d'utiliser d'autres méthodes, telles que les classes C 03 istringstream/ostringstream.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn