Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
#1

Результат atoi - C++

20.01.2013, 16:16. Просмотров 383. Ответов 2
Метки нет (Все метки)

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

То есть нужно сравнить является ли содержимое строки
>= −2 147 483 648
и
<= 2 147 483 647
Так и запихав все это в компилятор программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
bool TenString::isInteger(void) {
    bool result;
    if(toInt(Data))
        result = true;
    else 
        result = false;
    return result;
}
int TenString::toInt(const char *_string) {
    return atoi(_string);
}
 
int main(void) {
    setlocale(LC_ALL, "Russian"); // âêëþ÷èì ðóññêèé. Гў BC Г*ГҐ Г*Г*äî
    TenString A("512431324512123532423");
    TenString B("44232");
    if(A.isInteger())
        cout << "A is integer";
    else
        cout << "A is not intger";
    cout << endl;
    if(B.isInteger())
        cout << "B is integer";
    else
        cout << "B is not intger";
        
    system("PAUSE");
    
    return EXIT_SUCCESS;
}
не заработала.

решил поступить умнее и прочитать F1 по atoi
Return Value
On success, the function returns the converted integral number as an int value.
If no valid conversion could be performed, a zero value is returned.
There is no standard specification on what happens when the converted value would be out of the range of representable values by an int. See strtol for a more robust cross-platform alternative when this is a possibility.
это говорит о том, что мы получим 0, если что-то пойдет не так , и фиг знает что, если выйдем за границы значений типа int. что мы и имеем.
подскажите, как можно выкрутиться?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2013, 16:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Результат atoi (C++):

Почему функция atoi возвращает неожиданный результат? - C++
char chislo; int kol_OB; chislo = '2'; chislo = '4'; kol_OB = atoi(chislo); Почему kol_OB = 18?

atoi - C++
short x char chm; ...цикл, присваиваем chm значение... x = atoi (chm); if ( x &lt; 32768) { cout &lt;&lt;...

atoi() - C++
программа элементарная - надо считать строку &quot;x=int1+int2&quot; где int1 и int2 не известные зарание значения int; надо вывести int1+int2; не...

atof и atoi - C++
Помогите пожалуйста, разобратся что такое atof, atoi, как работает, что делает?

atoi не работает! - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; using namespace std; int main(){ int K, N, t1_1, t2_2; int p; ...

Atoi, atof. - C++
Подскажите пожалуйста, как с помощью функций atoi, atof, проверить, является ли данное число действительным? Добавлено через 21 минуту...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
20.01.2013, 16:25 #2
Ну... Приходит в голову одно забавное решение)
Берем строку. Преобразовываем в число каким-нибудь способом. Получаем некоторое число. Преобразовываем его в новую строку. Сравниваем эту строку с исходной. Если совпали - ок, число соответствует типу int.
1
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
20.01.2013, 16:32  [ТС] #3
0x10,
и правда
можно и так

Не по теме:

опять убеждаюсь, уже второй раз за сегодня, что узко мыслю (

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2013, 16:32
Привет! Вот еще темы с ответами:

Аналог atoi в С++ - C++
Вопрос возможно глупый, но если кто просветит меня буду очень благодарен)) как в С++ реализован перевод символьной строки(char или...

функция atoi - C++
Функции атои по идее должна превращать строку в число, но почему то я не могу заставить ее работать коректно, в чем ошибка? #include...

Не работает функция atoi - C++
Здравствуйте! Прошу помочь. Даю код программы, что не так с функцией atoi ? Программа рисует кривую Гильберта, i - порядок кривой, мне...

Проскользывает функция atoi - C++
Дана строка, в ней через пробелы расположены числа. Вывести эти числа в порядке возрастания. Вот код, но проблема в том, что на копировании...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru