C ++ wcstoull () - C ++ стандартна библиотека

Функцията wcstoull () в C ++ интерпретира съдържанието на широк низ като неподписан интегрален номер на посочената основа и връща стойността му като неподписан дълъг дълъг int.

Функцията wcstoull () също така задава указател, който да сочи към първия символ след последния валиден символ на широкия низ, ако има такъв, в противен случай указателят е зададен за нула.

 За основа 10 и широкия низ L "29hi $" Валидна числова част -> 29 Първи знак след валидна цифрова част -> h

Той се определя в заглавния файл.

прототип на wcstoull ()

 неподписан дълъг wcstoull (const wchar_t * str, wchar_t ** str_end, int base);

Функцията wcstoull () приема като свой параметър широк низ str, указател към широк символ str_end и цяло число - база.

След това интерпретира съдържанието на широкия низ като неподписан интегрален номер на дадената основа и връща неподписана дълга дълга int стойност.

wcstoull () Параметри

  • str: Широк низ, представящ неподписано интегрално число.
  • str_end: указател към указател към широк символ. Стойността на str_end се задава от функцията на следващия символ в str след последния валиден символ. Този параметър може да бъде и нулев указател, в който случай той не се използва.
  • основа: Основата на интегралната стойност. Наборът от валидни стойности за база е (0, 2, 3,…, 35, 36).

wcstoull () Върната стойност

Функцията wcstoull () връща:

  • неподписана long long int стойност (която се преобразува от низа).
  • 0, ако не може да се извърши валидно преобразуване.

Пример 1: Как работи функцията wcstoull ()?

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

Когато стартирате програмата, изходът ще бъде:

 Стойност на низа = 101aa ᚶ Неподписана дълъг дълъг Int стойност = 101 краен низ = aa value Стойност на низ = 59 Неподписан дълъг дълъг Int стойност = 59 краен низ =

Валидна целочислена стойност за функцията wcstoull () се състои от:

  • Незадължителен знак + или -.
  • Префикс 0 за осмична основа (важи само когато основа = 8 или 0).
  • Префикс 0x или 0X за шестнадесетична основа (важи само когато base = 16 или 0).
  • Поредица от цифри и / или азбуки (ако основата е по-голяма от 10).

Ако аргументът съдържа знак минус (-) в началото, отрицателното число се преобразува неявно в неподписан дълъг дълъг тип int, който е положително число.

Валидните стойности за базата на параметрите са (0, 2, 3, …, 35, 36). Наборът от валидни цифри за основа 2 е (0, 1), за основа 3 е (0, 1, 2) и т.н. За бази, започващи от 11 до 36, валидните цифри включват азбуки.

Наборът от валидни цифри за база 11 е (0, 1, …, 9, A, a), за база 12 е (0, 1, …, 9, A, a, B, b) и т.н.

Пример 2: функция wcstoull () с различни бази

 #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 Unsigned Long Long Int with base-5 = " << wcstoull(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Long Int with base-12 = " << wcstoull(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Long Int with base-36 = " << wcstoull(str, &end, 36) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Когато стартирате програмата, изходът ще бъде:

 311bzϾϿ към Неподписан дълъг дълъг Int с основа-5 = 81 краен низ = bzϾϿ 311bzϾϿ до Неподписан дълъг дълъг Int с основа-12 = 5351 Краен низ = zϾϿ 311bzϾϿ до Неподписан дълъг дълъг Int с основа-36 = 5087231 Краен низ =

Функцията wcstoull () игнорира всички водещи символи за интервали, докато не бъде намерен основният символ, който не е интервал.

По принцип валиден аргумент от цяло число за функцията wcstoull () има следната форма:

 (празно пространство) (- | +) (0 | 0x) (буквено-цифрови знаци)

След това, започвайки от този знак, са необходими колкото се може повече символи, които формират валидно цяло число и ги преобразуват в неподписана дълга int стойност. Всичко, което е останало от низа след последния валиден знак, се игнорира и няма ефект върху резултата.

Пример 3: Функция wcstoull () за водене на празно пространство и невалидно преобразуване

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

Когато стартирате програмата, изходът ще бъде:

 205Ϣx до Неподписан дълъг дълъг Int с основа-5 = 10 краен низ = 5Ϣx xƜz201 до Неподписан дълъг дълъг Int с основа-12 = 0 Краен низ = xƜz201

Ако основата е 0, числовата база се определя автоматично, като се гледа форматът на низа. Ако префиксът е 0, основата е осмична (8). Ако префиксът е 0x или 0X, основата е шестнадесетична (16), в противен случай основата е десетична (10).

Пример 4: Функция wcstoull () с основа 0

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

Когато стартирате програмата, изходът ще бъде:

 0539Ẅ към Неподписан дълъг дълъг Int с основа-0 = 43 Краен низ = 9Ẅ 0xa31 ע до Неподписан дълъг дълъг Int с основа-0 = 2609 Краен низ = ע 119x ؏ към Неподписан дълъг дълъг Int с основа-0 = 119 Краен низ = x ؏

Интересни статии...