Atoi c что это
Перейти к содержимому

Atoi c что это

atoi , _atoi_l , _wtoi , _wtoi_l

locale
Используемый языковой стандарт.

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

Каждая функция возвращает значение int , которое создается за счет интерпретации входных символов как числа. Функции atoi и _wtoi возвращают значение 0, если аргумент невозможно преобразовать в значение этого типа.

В случае переполнения большими отрицательными целыми значениями возвращается LONG_MIN . В подобных условиях atoi и _wtoi возвращают INT_MAX и INT_MIN . Во всех случаях, когда диапазон не соблюдается, errno принимает значение ERANGE . Если переданный параметр имеет значение NULL , вызывается обработчик недопустимых параметров, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno значение EINVAL и возвращают 0.

Комментарии

Эти функции преобразуют символьную строку в целое значение ( atoi и _wtoi ). Входная строка представляет собой последовательность символов, которые могут обрабатываться как числовое значение указанного типа. Каждая функция прекращает чтение строки на первом знаке, который она не может распознать как часть числа. Этот символ может быть нуль-символом («\0″ или L»\0»), которым завершается строка.

Аргумент str для atoi и _wtoi принимает следующую форму:

whitespace Состоит из пробела или символов табуляции, которые игнорируются; sign значение параметра — плюс (+) или минус (-); и digits — одна или несколько цифр.

Версии этих функций с суффиксом _l идентичны, за исключением того, что они используют переданный параметр языкового стандарта вместо текущего языкового стандарта. Для получения дополнительной информации см. Locale.

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

Универсальное текстовое сопоставление функций

TCHAR.H ассемблер _UNICODE & _MBCS не определено _MBCS определяется _UNICODE определяется
_tstoi atoi atoi _wtoi
_ttoi atoi atoi _wtoi

Требования

Подпрограммы Обязательный заголовок
atoi <stdlib.h>
_atoi_l , _wtoi , _wtoi_l <stdlib.h> или <wchar.h>

Пример

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

Atoi c что это

Функция atoi (ASCII to integer, из ASCII в целое цисло) в языке программирования Си используется для приведения (конвертации) строки в числовой вид.

int atoi(const char *str)

Аргумент str означает строку, представленную в виде массива символов, содержащего символы знакового целого (тип int ) числа. Строка должна быть нуль-терминированной, то есть оканчиваться символом «\0». Когда atoi() получает строку без числовых последовательностей, то в этом случае возвращает ноль (0). Если строка содержит корректную последовательность цифр, представляющих число 0, то также возвращается 0, при этом по возвращаемому числу невозможно определить содержит ли строка корректное число или нет. Более новая функция strtol не имеет подобного недостатка.

Варианты функции atoiatol, atof и atoll (впоследствии известная как atoq) используются для приведения строки к типам long , double или long long , соответственно:

long atol(const char *str) double atof(const char *str) long long atoll(const char *str) (C99)

Соответствие стандартам

Функции atoi, atof и atol являются частью стандартной библиотеки Си (ISO) C89, а функция atoll была добавлена в стандарте C99.

См. также

Ссылки

    (англ.) — пример использования (рус.) — описание и пример использования (рус.) (рус.)

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое «Atoi» в других словарях:

atoi — Функция atoi (ASCII to integer, из ASCII в целое число) в языке программирования Си используется для приведения (конвертации) строки в числовой вид. int atoi(const char *str) Аргумент str означает строку, представленную в виде массива символов,… … Википедия

Atoi — The atoi (ASCII to Integer) function in the C programming language is used to convert a string into a numerical representation.:int atoi (const char *string) Where string is the string, represented by an array of characters. When atoi encounters… … Wikipedia

After Tax Operating Income — ATOI — A company s total operating income after taxes. This non GAAP measure excludes any after tax benefits or charges such as effects from accounting changes. Due to its non GAAP nature, what is included and excluded in the measure differs, therefore … Investment dictionary

Interpreter — Ein Interpreter (im Sinne der Softwaretechnik) ist ein Computerprogramm, das einen Programm Quellcode im Gegensatz zu Assemblern oder Compilern nicht in eine auf dem System direkt ausführbare Datei umwandelt, sondern den Quellcode einliest,… … Deutsch Wikipedia

Interpreter (Computer) — Ein Interpreter (im Sinne der Softwaretechnik) ist ein Computerprogramm, das einen Programm Quellcode im Gegensatz zu Assemblern oder Compilern nicht in eine auf dem System direkt ausführbare Datei umwandelt, sondern den Quellcode einliest,… … Deutsch Wikipedia

Interpretersprache — Ein Interpreter (im Sinne der Softwaretechnik) ist ein Computerprogramm, das einen Programm Quellcode im Gegensatz zu Assemblern oder Compilern nicht in eine auf dem System direkt ausführbare Datei umwandelt, sondern den Quellcode einliest,… … Deutsch Wikipedia

Niclas Hävelid — Born … Wikipedia

Comparison of programming languages (basic instructions) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations … Wikipedia

Luhn-Algorithmus — Der Luhn Algorithmus oder die Luhn Formel, auch bekannt als „Modulo 10“ oder „mod 10“ Algorithmus und als Double Add Double Methode, wurde in den 1960er Jahren von Hans Peter Luhn als eine Methode der Überprüfung von Identifikationsnummern… … Deutsch Wikipedia

Luhn-Formel — Der Luhn Algorithmus oder die Luhn Formel, auch bekannt als „Modulo 10“ oder „mod 10“ Algorithmus, wurde in den 1960er Jahren von Hans Peter Luhn als eine Methode der Überprüfung von Identifikationsnummern entwickelt. Er ist eine simple… … Deutsch Wikipedia

Функция atoi

Проблема вся в том, что atoi преобразует мне строку из цифр в коды таблицы ascii. К примеру, если строка = «7», то он мне преобразует эту строку в число 55, если число однозначное, то, конечно, можно вычитать 48 и все совпадет. Но если число двухзначное, то так уже не сделать. Дальше приведен кусок когда где я это использую.

Что-то читал про использование юникода, но так и не понял, при чем тут это. Кто знает, подскажите, пожалуйста, что я не так делаю?

Это потому, по-моему, что вы вот тут (temp, «%d», cListP[j]) переводите символы в их коды (%d — трактовать аргумент как целое число), которые с помощью atoi превращаются обратно в числа =D Смотрите неправильно работающий код в отладчике — там такое видно.

То есть, вы неправильно разделяете строку на элементы. К слову, сделать это можно гораздо проще и без таких загогулин с пользованием sprintf и strcat.

Ну, для начала, Вы с аргументами sprintf_s() напутали. Не понимаю почему не ругается компилятор.

Должно быть sprintf_s (char result_buf, int bufsize, char format [, аргумент]. )

Если допустить, что где-то есть #define sprintf_s sprintf, то становится ясно (по крайней мере для одного единственного символа ‘7’ в cListP[0]).

В sprintf_s(temp, «%d», cListP[j]) (на самом деле, как я понимаю sprintf()) Вы записываете в temp cListP[j], как десятичные цифры (для «7» получим «55») а потом добавляете эти «55» в str. После цикла в str как раз и будет «55».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *