_itoa_s, функции _itow_s (2024)

  • Статья

Преобразует целое число в строку. Эти функции — это версии _itoa_itow функций с улучшениями безопасности, как описано в функциях безопасности в CRT.

Синтаксис

errno_t _itoa_s( int value, char * buffer, size_t size, int radix );errno_t _ltoa_s( long value, char * buffer, size_t size, int radix );errno_t _ultoa_s( unsigned long value, char * buffer, size_t size, int radix );errno_t _i64toa_s( long long value, char *buffer, size_t size, int radix );errno_t _ui64toa_s( unsigned long long value, char *buffer, size_t size, int radix );errno_t _itow_s( int value, wchar_t *buffer, size_t size, int radix );errno_t _ltow_s( long value, wchar_t *buffer, size_t size, int radix );errno_t _ultow_s( unsigned long value, wchar_t *buffer, size_t size, int radix );errno_t _i64tow_s( long long value, wchar_t *buffer, size_t size, int radix );errno_t _ui64tow_s( unsigned long long value, wchar_t *buffer, size_t size, int radix);// These template functions are C++ only:template <size_t size>errno_t _itoa_s( int value, char (&buffer)[size], int radix );template <size_t size>errno_t _ltoa_s( long value, char (&buffer)[size], int radix );template <size_t size>errno_t _ultoa_s( unsigned long value, char (&buffer)[size], int radix );template <size_t size>errno_t _itow_s( int value, wchar_t (&buffer)[size], int radix );template <size_t size>errno_t _ltow_s( long value, wchar_t (&buffer)[size], int radix );template <size_t size>errno_t _ultow_s( unsigned long value, wchar_t (&buffer)[size], int radix );

Параметры

value
Число, которое требуется преобразовать.

buffer
Выходной буфер, содержащий результат преобразования.

size
buffer Размер символов или расширенных символов.

radix
Радикс или числовая база для преобразования value, которая должна находиться в диапазоне 2–36.

Возвращаемое значение

Возвращает нуль в случае успеха или код ошибки в случае неудачи. Если применяются какие-либо из следующих условий, функция вызывает недопустимый обработчик параметров, как описано в разделе проверки параметров.

Условия ошибок

значениеbuffersizeradixВозврат
любоеNULLлюбоелюбоеEINVAL
любоелюбое<=0любоеEINVAL
любоелюбое<= длина требуемой строки результаталюбоеEINVAL
любоелюбоелюбоеradix< 2 или radix> 36EINVAL

Проблемы с безопасностью

Эти функции могут создать нарушение доступа, если buffer не указывает на допустимую память и не NULLявляется, или если длина буфера недостаточно длинна для хранения результирующих строк.

Замечания

За исключением параметров и возвращаемого значения, семейства функций имеют то же поведение, _itoa_s_itow_s что и соответствующие менее безопасные _itoa и _itow версии.

В C++ использование данных функций упрощено наличием шаблонных перегрузок; перегруженные методы могут автоматически определять длину буфера (что исключает необходимость указания аргумента с размером буфера), а также они могут автоматически заменять более старые, незащищенные функции их новыми безопасными аналогами. Дополнительные сведения см. в разделе "Безопасные перегрузки шаблонов".

Версии библиотек отладки этих функций сначала заполняют буфер 0xFE. Чтобы отключить это поведение, используйте _CrtSetDebugFillThreshold.

CRT включает удобные макросы для определения размера буфера, необходимого для преобразования самого длинного возможного значения каждого целого типа, в том числе конца null и символа знака для нескольких общих баз. Дополнительные сведения см. в разделе "Максимальное количество макросов преобразования".

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Сопоставления подпрограмм универсального текста

Tchar.h Обычной_UNICODE и _MBCS не определен_MBCS Определенные_UNICODE Определенные
_itot_s_itoa_s_itoa_s_itow_s
_ltot_s_ltoa_s_ltoa_s_ltow_s
_ultot_s_ultoa_s_ultoa_s_ultow_s
_i64tot_s_i64toa_s_i64toa_s_i64tow_s
_ui64tot_s_ui64toa_s_ui64toa_s_ui64tow_s

Требования

МаршрутОбязательный заголовок
_itoa_s, _ltoa_s, _ultoa_s, _i64toa_s, _ui64toa_s<stdlib.h>
_itow_s, _ltow_s, _ultow_s, _i64tow_s, _ui64tow_s<stdlib.h> или <wchar.h>

Эти функции относятся к корпорации Майкрософт. Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

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

// crt_itoa_s.c// Compile by using: cl /W4 crt_itoa_s.c#include <stdlib.h> // for _itoa_s functions, _countof, count macro#include <stdio.h> // for printf#include <string.h> // for strnlenint main( void ){ char buffer[_MAX_U64TOSTR_BASE2_COUNT]; int r; for ( r = 10; r >= 2; --r ) { _itoa_s( -1, buffer, _countof(buffer), r ); printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) ); } printf( "\n" ); for ( r = 10; r >= 2; --r ) { _i64toa_s( -1LL, buffer, _countof(buffer), r ); printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) ); } printf( "\n" ); for ( r = 10; r >= 2; --r ) { _ui64toa_s( 0xffffffffffffffffULL, buffer, _countof(buffer), r ); printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) ); }}
base 10: -1 (2 chars)base 9: 12068657453 (11 chars)base 8: 37777777777 (11 chars)base 7: 211301422353 (12 chars)base 6: 1550104015503 (13 chars)base 5: 32244002423140 (14 chars)base 4: 3333333333333333 (16 chars)base 3: 102002022201221111210 (21 chars)base 2: 11111111111111111111111111111111 (32 chars)base 10: -1 (2 chars)base 9: 145808576354216723756 (21 chars)base 8: 1777777777777777777777 (22 chars)base 7: 45012021522523134134601 (23 chars)base 6: 3520522010102100444244423 (25 chars)base 5: 2214220303114400424121122430 (28 chars)base 4: 33333333333333333333333333333333 (32 chars)base 3: 11112220022122120101211020120210210211220 (41 chars)base 2: 1111111111111111111111111111111111111111111111111111111111111111 (64 chars)base 10: 18446744073709551615 (20 chars)base 9: 145808576354216723756 (21 chars)base 8: 1777777777777777777777 (22 chars)base 7: 45012021522523134134601 (23 chars)base 6: 3520522010102100444244423 (25 chars)base 5: 2214220303114400424121122430 (28 chars)base 4: 33333333333333333333333333333333 (32 chars)base 3: 11112220022122120101211020120210210211220 (41 chars)base 2: 1111111111111111111111111111111111111111111111111111111111111111 (64 chars)

См. также

Преобразование данных
_itoa, _itow функции

_itoa_s, функции _itow_s (2024)
Top Articles
The Great Brownie Debate: What's Your Favorite?
What's the Difference Between Toffee and Caramel?
Rubratings Tampa
Wordscapes Level 5130 Answers
Robot or human?
Aiken County government, school officials promote penny tax in North Augusta
Big Y Digital Coupon App
A Fashion Lover's Guide To Copenhagen
Ave Bradley, Global SVP of design and creative director at Kimpton Hotels & Restaurants | Hospitality Interiors
What Is A Good Estimate For 380 Of 60
Nhl Wikia
Sound Of Freedom Showtimes Near Cinelux Almaden Cafe & Lounge
Praew Phat
Tygodnik Polityka - Polityka.pl
Red Devil 9664D Snowblower Manual
De beste uitvaartdiensten die goede rituele diensten aanbieden voor de laatste rituelen
Hennens Chattanooga Dress Code
Evil Dead Rise - Everything You Need To Know
Halo Worth Animal Jam
Epguides Strange New Worlds
Clare Briggs Guzman
Reborn Rich Kissasian
Terry Bradshaw | Biography, Stats, & Facts
Panola County Busted Newspaper
Makemv Splunk
Marilyn Seipt Obituary
Dexter Gomovies
Cvs Sport Physicals
Top Songs On Octane 2022
Kacey King Ranch
FREE Houses! All You Have to Do Is Move Them. - CIRCA Old Houses
Emily Katherine Correro
140000 Kilometers To Miles
Scioto Post News
Lucky Larry's Latina's
Federal Student Aid
Domina Scarlett Ct
The Vélodrome d'Hiver (Vél d'Hiv) Roundup
Tugboat Information
Google Chrome-webbrowser
Gary Lezak Annual Salary
Gt500 Forums
814-747-6702
Divinity: Original Sin II - How to Use the Conjurer Class
Kjccc Sports
R/Gnv
Spreading Unverified Info Crossword Clue
New Starfield Deep-Dive Reveals How Shattered Space DLC Will Finally Fix The Game's Biggest Combat Flaw
CPM Homework Help
Lira Galore Age, Wikipedia, Height, Husband, Boyfriend, Family, Biography, Net Worth
Www Ventusky
Latest Posts
Article information

Author: Jonah Leffler

Last Updated:

Views: 6119

Rating: 4.4 / 5 (45 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Jonah Leffler

Birthday: 1997-10-27

Address: 8987 Kieth Ports, Luettgenland, CT 54657-9808

Phone: +2611128251586

Job: Mining Supervisor

Hobby: Worldbuilding, Electronics, Amateur radio, Skiing, Cycling, Jogging, Taxidermy

Introduction: My name is Jonah Leffler, I am a determined, faithful, outstanding, inexpensive, cheerful, determined, smiling person who loves writing and wants to share my knowledge and understanding with you.