Itoa (Си)

Функция itoa в языке программирования C возвращает запись указанного целого числа в позиционной системе счисления с заданным основанием (например число 10 в системе счисления с основанием 7 записывается как "13"). Эта функция не определена ни в одном стандарте языка Си, но зачастую компиляторы поддерживают её за счет использования заголовка <stdlib.h>, так как она весьма близка по смыслу к стандартной библиотечной функции atoi.

void* itoa(int input, char *buffer, int radix)

itoa принимает передаваемое целое число input и возвращает его запись в системе счисления по основанию radix (которое должно принимать значения от 2 до 36). Алфавит вывода состоит из 36 знаков - сначала 10 арабских цифр, затем 26 букв стандартной латиницы. Полученное число (последовательность цифр основания radix) записывается в буфер вывода buffer.

В зависимости от реализации, itoa может возвращать указатель на первый символ в буфере buffer, или может быть создана таким образом, чтобы передавать нуль-buffer, в результате чего функция возвращает длину строки, которая была записана в корректный buffer.

Для преобразования числа в строку с основанием 8 (восьмеричная), 10 (десятичная) или 16 (шестнадцатеричная система счисления) альтернативой, совместимой со стандартом, является использование стандартной библиотечной функции sprintf.

Реализация от Кернигана и Ритчи

Функция itoa появилась в первом издании книги Брайана Кернигана и Дениса Ритчи Язык программирования Си, на странице 60. Второе издание Язык программирования Си («K&R2») на стр. 64 содержало нижеследующую реализацию itoa. В книге отмечено несколько вопросов, связанных с этой реализацией, включая тот факт, что она не в состоянии корректно обработать самое маленькое отрицательное число −2длина машинного слова в битах-1.[1]

 /* itoa:  конвертируем n в символы в s */
 void itoa(int n, char s[])
 {
     int i, sign;
 
     if ((sign = n) < 0)  /* записываем знак */
         n = -n;          /* делаем n положительным числом */
     i = 0;
     do {       /* генерируем цифры в обратном порядке */
         s[i++] = n % 10 + '0';   /* берем следующую цифру */
     } while ((n /= 10) > 0);     /* удаляем */
     if (sign < 0)
         s[i++] = '-';
     s[i] = '\0';
     reverse(s);
 }

Функция reverse реализована двумя страницами ранее:

 #include <string.h>
 
 /* reverse:  переворачиваем строку s на месте */
 void reverse(char s[])
 {
     int i, j;
     char c;
 
     for (i = 0, j = strlen(s)-1; i<j; i++, j--) {
         c = s[i];
         s[i] = s[j];
         s[j] = c;
     }
 }

Функция itoa (а также схожая с ней функция ftoa, конвертирующая числа с плавающей запятой в строку) указана в первой версии руководства по Unix.[2] В отличие от приведённых выше версий, библиотечная Unix-версия имела интерфейс, примерно похожий на

void itoa(int input, void (*subr)(char))

и вызывала подпрограмму обратного вызова subr для каждого символа в строке вывода, что устраняло необходимость в большом буфере для хранения сразу всей строки.

См. также

Примечания

  1. Решение этого вопроса смотри «K&R2 solutions» Архивная копия от 3 марта 2010 на Wayback Machine на сайте clc-wiki.net.
  2. «Unix Programmer’s Manual» Архивировано 18 мая 2008 года., 3 ноября 1971. Глава «Library routines» Архивировано 9 мая 2008 года..

Ссылки

  • string itoa(int n) — Функция C++ конвертации int в string (без утечек памяти!)  (англ.)
  • How do I use itoa() with GCC? — реализации itoa() с тестами производительности  (англ.)
  • lexical_cast — альтернатива для C++, часть библиотек boost  (англ.)
  • modp_numtoa — альтернатива для C/C++ для преобразования целых и чисел с плавающей точкой в символы.  (англ.)
  • Good old Integer To Ascii conversion: itoa — Еще одна достаточно быстрая реализация itoa для различных типов данных, плюс некоторая обертка в стиле boost в виде специализаций шаблона boost::lexical_cast  (англ.).
  • Описание itoa  (рус.)

Read other articles:

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (فبراير 2019) تيرمعلة الاسم الرسمي تيرمعلة الإحداثيات 34°48′4″N 36°42′30″E / 34.80111°N 36.70833°E / 34.80111; 36.70833 تقسيم إ...

 

У Вікіпедії є статті про інші географічні об’єкти з назвою Маршфілд. Переписна місцевість Маршфілдангл. Marshfield Координати 42°05′39″ пн. ш. 70°42′33″ зх. д. / 42.09440000002777538° пн. ш. 70.70940000002778447° зх. д. / 42.09440000002777538; -70.70940000002778447Координати: 42°05′39″ п...

 

Truxtun-class destroyer For other ships with the same name, see USS Truxtun. USS Truxtun (DD-14) History United States NameTruxtun NamesakeCommodore Thomas Truxtun awarded Congressional Gold Medal BuilderMaryland Steel Company Sparrows Point, Maryland Laid down13 November 1899 Launched15 August 1901 Sponsored byMiss Isabelle Truxtun, grand daughter of Commodore Tuxtun[1] Commissioned11 September 1902 Decommissioned18 July 1919 Stricken15 September 1919 IdentificationHull symbol: DD-14...

У Вікіпедії є статті про інші значення цього терміна: Кулі (значення). Ця стаття містить текст, що не відповідає енциклопедичному стилю. Будь ласка, допоможіть удосконалити цю статтю, погодивши стиль викладу зі стилістичними правилами Вікіпедії. Можливо, сторінка обговоре

 

?Tubificina Трубочник звичайний Біологічна класифікація Царство: Тварини (Animalia) Тип: Кільчасті черви (Annelida) Клас: Clitellata Підклас: Малощетинкові черви (Oligochaeta) Ряд: Гаплотаксиди (Haplotaxida) Підряд: Tubificina Посилання ITIS: 68509 NCBI: 6383 Трубочники (Tubificina) — це малощетинкові кільчасті черви, ...

 

اضغط هنا للاطلاع على كيفية قراءة التصنيف الكروانية البوساداسيةCoccidioides posadasii   المرتبة التصنيفية نوع  التصنيف العلمي المملكة: فطريات القسم: فطريات زقية الطائفة: عوفنيات الرتبة: Onygenales الفصيلة: Onygenaceae الجنس: كروانية الاسم العلمي الكروانية البوساداسيةCoccidioides posadasii تعديل م...

Інститут картоплярства НААН України Основні дані Засновано 1968 Приналежність НААН УкраїниСфера селекція рослин Контакт Ключові особи директор — доктор с.-г. наук, професор Бондарчук Анатолій АндрійовичКраїна  УкраїнаАдреса Українавул. Чкалова, 22, смт НемішаєвеКиїв

 

Toru Takemitsu (1961) Tōru Takemitsu (japanisch 武満 徹, Takemitsu Tōru, * 8. Oktober 1930 in Tokio; † 20. Februar 1996 ebenda) war ein japanischer Komponist. Inhaltsverzeichnis 1 Leben 2 Werke 3 Filmografie (Auswahl) 4 Literatur 5 Weblinks und Literaturangabe 6 Einzelnachweise Leben Takemitsu Tōru hörte nach dem Zweiten Weltkrieg moderne französische Komponisten. Dieser Einfluss, zusammen mit dem privaten Kompositionsstudium bei Yasuji Kiyose und beeinflusst durch Hayasaka Fumio (1...

 

Deutscher Akademischer Austauschdienst (DAAD) Rechtsform Eingetragener Verein Gründung 1925[1] Sitz Bonn Vorläufer Akademischer Austauschdienst Zweck Förderung des internationalen Austauschs von Studierenden und Wissenschaftlern.[2] Vorsitz Joybrato Mukherjee[3] Beschäftigte ca. 1000 Website www.daad.de Hauptgebäude in Bonn Der Deutsche Akademische Austauschdienst e. V. (DAAD) ist eine Gemeinschaftseinrichtung der deutschen Hochschulen und Studierendenschafte...

Legislative Assembly constituency in Karnataka State, India MadikeriConstituency for the Karnataka Legislative AssemblyConstituency detailsCountryIndiaRegionSouth IndiaStateKarnatakaDistrictKodaguLS constituencyMysoreTotal electors232,799[1]ReservationNoneMember of Legislative Assembly16th Karnataka Legislative AssemblyIncumbent Dr. Mantar Gowda PartyIndian National Congress Madikeri Assembly constituency is one of the 224 Legislative Assembly constituencies of Karnataka state in Indi...

 

Михайло Олександрович Гарам Народження 11 лютого 1918(1918-02-11)в селі Власівка Ічнянського району Чернігівської областіСмерть 28 червня 1944(1944-06-28) (26 років)Країна  СРСРПриналежність  Радянська арміяВид збройних сил  ВПС СРСРРід військ Винищувальна авіаціяРоки служби 19...

 

Не следует путать со спермацет. Человеческая сперма в чашке Петри Сперматозоид и яйцеклетка Видно движение живых сперматозоидов человека под микроскопом, светлое поле Спе́рма (от др.-греч. σπέρμα «семя»), се́мя, эякуля́т — жидкость (мутная, вязкая, опалесцирующая, с...

Radio program This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: Go Vegan – news · newspapers · books · scholar · JSTOR (December 2015) (Learn how and when to remove this template message) Go Vegan Radio is a one-hour talk radio program hosted by Bob Linden. The show airs in the United States on terrestrial radio via the Clear Channel network on Green 960 ...

 

2001 studio album by DMXThe Great DepressionStudio album by DMXReleasedOctober 23, 2001RecordedJuly 2000-July 2001GenreHardcore hip hopLength72:02LabelRuff RydersDef JamProducerDarrin & Joaquin Dean (exec.)DMX (also exec.)Latarche Nas Collins (co-exec.)Just BlazeSwizz BeatzDame GreasePKBlack KeyKidd KoldDMX chronology ...And Then There Was X(1999) The Great Depression(2001) Grand Champ(2003) Singles from The Great Depression We Right HereReleased: August 14, 2001 Who We BeReleased...

 

2014 Indian filmGubeerTheatrical release posterDirected byThilipWritten byThilipProduced byArcher CinemasStarringThilipRaviWhiteTamilPratapPrabhuBowerCinematographySanthosh SriramEdited byKiran KNMusic byVishal-AdityaDistributed byArcher CinemasRelease date 10 October 2014 (2014-10-10) Running time119 minutesCountryIndiaLanguageTamilBudget₹38 lakh (US$48,000)[1] Gubeer (transl. Cheers) is a 2014 Tamil-language black comedy film, written and directed by Thilipkumar Raj...

Plantel del Juego de Estrellas de las Grandes Ligas de Béisbol de 2009. Presidente John F. Kennedy lanzando la primera pelota en el Juego de las Estrellas de 1962. El Juego de Estrellas de las Grandes Ligas de Béisbol (Major League Baseball All-Star Game) es un juego anual de béisbol entre los mejores jugadores de la Liga Nacional y la Liga Americana. El Juego de las Estrellas generalmente tiene lugar a mediados de julio y marca la mitad de la campaña de las Grandes Ligas. Elección de la...

 

Agency of the State of Texas, United States Texas Historical CommissionTexas Historical Commission sealTexas Historical Commission logoAgency overviewFormed1953HeadquartersAustin, Texas, United StatesEmployees175Websitethc.texas.gov Carrington-Covert House Luther Hall Gethsemane Lutheran Church Elrose Building Christianson-Leberman Building The Texas Historical Commission is an agency dedicated to historic preservation within the U.S. state of Texas. It administers the National Register of Hi...

 

Painting by Emanuel Leutze This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Westward the Course of Empire Takes Its Way – news · newspapers · books · scholar · JSTOR (September 2018) (Learn how and when to remove this template message) Westward the Course of Empire Takes Its WayArtistEmanuel LeutzeYear1861Dim...

A Human Murder WeaponSutradaraTakashi MiikeSkenarioHisao MakiBerdasarkanBuku komik:Ikki KajiwaraNobuo NakanoSinematograferHiroshi Nakamura Shigeru Komatsubara[1]Tanggal rilis 1992 (1992) Durasi71 menitNegaraJepangBahasaJepang A Human Murder Weapon (人間兇器 愛と怒りのリング, Ningen kyôki: Ai to ikari no ringu) adalah film Jepang tahun 1992 yang disutradarai oleh Takashi Miike. Film ini merupakan film pertama Miike dari sekian banyak filmnya yang didasarkan dari manga...

 

Turkish racing cyclist Ahmet AkdilekAkdilek in 2012Personal informationFull nameAhmet AkdilekBorn (1988-03-09) 9 March 1988 (age 36)Konya, TurkeyHeight1.78 m (5 ft 10 in)Weight68 kg (150 lb)Team informationCurrent teamKonya Büyükşehir BelediyesporDisciplineRoadRoleRiderDirecteur sportifProfessional teams2011–2012Manisaspor[1]2013–2018Torku Şekerspor2019Salcano–Sakarya BB Team Managerial team2023–Konya Büyükşehir Belediyespor Ahmet...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!