Визуальный простой пример «atoi» функция в переполнении стека

Может ли кто-нибудь привести очень простой пример того, как использовать функцию Atoi? Я знаю, как это должно работать, но большинство примеров приведены в цели C … С которой у меня проблемы с чтением, поскольку я еще не научился этому.
Заранее спасибо!

0

Решение

#include <cstdlib>        // wraps stdlib.h in std, fixes any non-Standard content

std::string t1("234");
int i1 = std::atoi(t1.c_str());
int i1b = std::stoi(t1);  // alternative, but throws on failure

const char t2[] = "123";
int i2 = std::atoi(t2);

const char* t3 = "-93.2"; // parsing stops after +/- and digits
int i3 = std::atoi(t3);   // i3 == -93

const char* t4 = "-9E2";  // "E" notation only supported in floats
int i4 = std::atoi(t4);   // i4 == -9

const char* t5 = "-9 2";  // parsing stops after +/- and digits
int i5 = std::atoi(t5);   // i5 == -9

const char* t6 = "ABC";   // can't convert any part of text
int i6 = std::atoi(t6);   // i6 == 0 (whenever conversion fails completely)

const char* t7 = "9823745982374987239457823987";   // too big for int
int i7 = std::atoi(t7);   // i7 is undefined

Поскольку поведение в этом последнем случае не определено (возможно, поэтому некоторые реализации могут циклически добавлять следующую цифру к десятикратному предыдущему значению, не тратя время на проверку целочисленного переполнения со знаком), рекомендуется использовать std::stoi или же std::strtol вместо.

Смотрите также: cpreference atoi для документации, включая примеры; стои

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector