C ++ wcstoll () - Bibliothèque standard C ++

La fonction wcstoll () en C ++ interprète le contenu d'une chaîne large comme un nombre entier de la base spécifiée et renvoie sa valeur sous la forme d'un long long int.

La fonction wcstoll () définit également un pointeur pour qu'il pointe sur le premier caractère après le dernier caractère valide de la chaîne large s'il y en a, sinon le pointeur est défini sur null.

 Pour la base 10 et la chaîne large L "31ÛÕÕ" Partie numérique valide -> 31 Premier caractère après la partie numérique valide -> Û

Il est défini dans le fichier d'en-tête.

prototype wcstoll ()

 long long wcstoll (const wchar_t * str, wchar_t ** str_end, int base);

La fonction wcstoll () prend une chaîne large str, un pointeur vers le caractère large str_end et une valeur entière - base comme paramètre.

Il interprète ensuite le contenu de la chaîne large comme un nombre entier de la base donnée et renvoie une valeur longue longue int.

Paramètres wcstoll ()

  • str: Une chaîne large ayant la représentation d'un nombre entier.
  • str_end: un pointeur vers un pointeur vers un caractère large. La valeur de str_end est définie par la fonction sur le caractère suivant de str après le dernier caractère valide. Ce paramètre peut également être un pointeur nul, auquel cas il n'est pas utilisé.
  • base: La base de la valeur intégrale. L'ensemble des valeurs valides pour la base est (0, 2, 3,…, 35, 36).

wcstoll () Valeur de retour

La fonction wcstoll () renvoie:

  • une valeur longue longue int (qui est convertie à partir de la chaîne).
  • 0 si aucune conversion valide n'a pu être effectuée.

Exemple 1: Comment fonctionne la fonction wcstoll ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str1() = L"41u0166u0124xx"; wchar_t str2() = L"127"; wchar_t *end; long long value; int base = 10; value = wcstoll(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstoll(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

Lorsque vous exécutez le programme, la sortie sera:

 Valeur de chaîne = 41ŦĤxx Long Long Int value = 41 End String = ŦĤxx String value = 127 Long Long Long Int value = 127 End String =

Une valeur entière valide pour la fonction wcstoll () se compose de:

  • Un signe + ou - facultatif.
  • Un préfixe 0 pour la base octale (s'applique uniquement lorsque base = 8 ou 0).
  • Un préfixe 0x ou 0X pour base hexadécimale (s'applique uniquement lorsque base = 16 ou 0).
  • Une séquence de chiffres et / ou d'alphabets (si la base est supérieure à 10).

Les valeurs valides pour la base de paramètres sont (0, 2, 3,…, 35, 36). Un ensemble de chiffres valides pour la base 2 est (0, 1), pour la base 3 est (0, 1, 2) et ainsi de suite. Pour les bases de 11 à 36, les chiffres valides incluent les alphabets.

L'ensemble des chiffres valides pour la base 11 est (0, 1,…, 9, A, a), pour la base 12 est (0, 1,…, 9, A, a, B, b) et ainsi de suite.

Exemple 2: fonction wcstoll () avec différentes bases

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wchar_t str() = L"311bzu03feu03ff"; wcout << str << L" to Long Long Int with base-5 = " << wcstoll(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Long Long Int with base-12 = " << wcstoll(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Long Long Int with base-36 = " << wcstoll(str, &end, 36) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Lorsque vous exécutez le programme, la sortie sera:

 311bzϾϿ à Long Long Int avec base-5 = 81 End String = bzϾϿ 311bzϾϿ à Long Long Int avec base-12 = 5351 End String = zϾϿ 311bzϾϿ à Long Long Int avec base-36 = 5087231 End String = ϾϿ

La fonction wcstoll () ignore tous les caractères blancs de tête jusqu'à ce que le caractère non-blanc principal soit trouvé.

En général, un argument entier valide pour la fonction wcstoll () a la forme suivante:

 (espace) (- | +) (0 | 0x) (caractères alphanumériques)

Ensuite, à partir de ce caractère, il prend autant de caractères que possible pour former une représentation entière valide et les convertit en une valeur int longue.

Ce qui reste de la chaîne après le dernier caractère valide est ignoré et n'a aucun effet sur le résultat.

Exemple 3: fonction wcstoll () pour les espaces de début et la conversion invalide

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L" 205u03e2x to Long Long Int with base-5 = " << wcstoll(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Long Long Int with base-12 = " << wcstoll(L"xu019cz201", &end, 12) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Lorsque vous exécutez le programme, la sortie sera:

 205Ϣx à Long Long Int avec base-5 = 10 End String = 5Ϣx xƜz201 à Long Long Int avec base-12 = 0 End String = xƜz201

Si la base est 0, la base numérique est déterminée automatiquement en regardant le format de la chaîne. Si le préfixe est 0, la base est octale (8). Si le préfixe est 0x ou 0X, la base est hexadécimale (16), sinon la base est décimale (10).

Exemple 4: fonction wcstoll () avec base 0

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L"0539u1e84 to Long Long Int with base-0 = " << wcstoll(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Long Long Int with base-0 = " << wcstoll(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Long Long Int with base-0 = " << wcstoll(L"119xu060f", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Lorsque vous exécutez le programme, la sortie sera:

 0539Ẅ à Long Long Int avec base-0 = 43 End String = 9Ẅ 0xa31 ע à Long Long Int avec base-0 = 2609 End String = ע 119x ؏ à Long Long Int avec base-0 = 119 End String = x ؏

Articles intéressants...