C ++ wcstoll () - C ++ Standardbibliothek

Die Funktion wcstoll () in C ++ interpretiert den Inhalt einer breiten Zeichenfolge als ganzzahlige Zahl der angegebenen Basis und gibt ihren Wert als long long int zurück.

Die Funktion wcstoll () setzt auch einen Zeiger, der auf das erste Zeichen nach dem letzten gültigen Zeichen der breiten Zeichenfolge zeigt, falls vorhanden, andernfalls wird der Zeiger auf null gesetzt.

 Für Basis 10 und die breite Zeichenfolge L "31ÛÕÕ" Gültiger numerischer Teil -> 31 Erstes Zeichen nach gültigem numerischen Teil -> Û

Es ist in der Header-Datei definiert.

wcstoll () Prototyp

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

Die Funktion wcstoll () verwendet einen breiten String str, einen Zeiger auf das breite Zeichen str_end und einen ganzzahligen Wert - base als Parameter.

Es interpretiert dann den Inhalt einer breiten Zeichenfolge als eine ganzzahlige Zahl der angegebenen Basis und gibt einen langen langen int-Wert zurück.

wcstoll () Parameter

  • str: Eine breite Zeichenfolge mit der Darstellung einer ganzzahligen Zahl.
  • str_end: Ein Zeiger auf einen Zeiger auf ein breites Zeichen. Der Wert von str_end wird von der Funktion auf das nächste Zeichen in str nach dem letzten gültigen Zeichen gesetzt. Dieser Parameter kann auch ein Nullzeiger sein. In diesem Fall wird er nicht verwendet.
  • Basis: Die Basis des Integralwerts. Die Menge der gültigen Werte für die Basis ist (0, 2, 3,…, 35, 36).

wcstoll () Rückgabewert

Die Funktion wcstoll () gibt Folgendes zurück:

  • Ein langer langer int-Wert (der aus der Zeichenfolge konvertiert wird).
  • 0, wenn keine gültige Konvertierung durchgeführt werden konnte.

Beispiel 1: Wie funktioniert die Funktion 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; )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 String-Wert = 41ŦĤxx Long Long Int-Wert = 41 End String = ŦĤxx String-Wert = 127 Long Long Int-Wert = 127 End String =

Ein gültiger ganzzahliger Wert für die Funktion wcstoll () besteht aus:

  • Ein optionales + oder - Zeichen.
  • Ein Präfix 0 für die Oktalbasis (gilt nur, wenn die Basis = 8 oder 0 ist).
  • Ein Präfix 0x oder 0X für die hexadezimale Basis (gilt nur, wenn die Basis = 16 oder 0 ist).
  • Eine Folge von Ziffern und / oder Alphabeten (wenn die Basis größer als 10 ist).

Die gültigen Werte für die Parameterbasis sind (0, 2, 3,…, 35, 36). Ein Satz gültiger Ziffern für Basis 2 ist (0, 1), für Basis 3 ist (0, 1, 2) und so weiter. Für Basen von 11 bis 36 enthalten gültige Ziffern Alphabete.

Der Satz gültiger Ziffern für Basis 11 ist (0, 1,…, 9, A, a), für Basis 12 ist (0, 1,…, 9, A, a, B, b) und so weiter.

Beispiel 2: wcstoll () -Funktion mit verschiedenen Basen

 #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; )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 311bzϾϿ zu Long Long Int mit Basis-5 = 81 End String = bzϾϿ 311bzϾϿ zu Long Long Int mit Basis-12 = 5351 End String = zϾϿ 311bzϾϿ zu Long Long Int mit Basis-36 = 5087231 End String = ϾϿ

Die Funktion wcstoll () ignoriert alle führenden Leerzeichen, bis das primäre Nicht-Leerzeichen gefunden wird.

Im Allgemeinen hat ein gültiges Ganzzahlargument für die Funktion wcstoll () die folgende Form:

 (Leerzeichen) (- | +) (0 | 0x) (alphanumerische Zeichen)

Ausgehend von diesem Zeichen werden dann so viele Zeichen wie möglich benötigt, um eine gültige Ganzzahldarstellung zu bilden und diese in einen langen int-Wert zu konvertieren.

Was nach dem letzten gültigen Zeichen von der Zeichenfolge übrig bleibt, wird ignoriert und hat keine Auswirkung auf das Ergebnis.

Beispiel 3: Funktion wcstoll () für führende Leerzeichen und ungültige Konvertierung

 #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; )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

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

Wenn die Basis 0 ist, wird die numerische Basis automatisch anhand des Formats der Zeichenfolge ermittelt. Wenn das Präfix 0 ist, ist die Basis oktal (8). Wenn das Präfix 0x oder 0X ist, ist die Basis hexadezimal (16), andernfalls ist die Basis dezimal (10).

Beispiel 4: Funktion wcstoll () mit Basis 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; )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 0539Ẅ zu Long Long Int mit Basis-0 = 43 End String = 9Ẅ 0xa31 ע zu Long Long Int mit Basis-0 = 2609 End String = ע 119x ؏ zu Long Long Int mit Basis-0 = 119 End String = x ؏

Interessante Beiträge...