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

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

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

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

20.01.2013, 16:16. Просмотров 369. Ответов 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. что мы и имеем.
подскажите, как можно выкрутиться?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2013, 16:16     Результат atoi
Посмотрите здесь:

Почему функция 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; не...

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

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 - C++
Функции атои по идее должна превращать строку в число, но почему то я не могу заставить ее работать коректно, в чем ошибка? #include...

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

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

Как работает atoi - C++
Почему bi==22 ??? #include&lt;iostream&gt; #include&lt;cstring&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; using namespace std; char*...

unsigned itoa and atoi - C++
Всем привет! Подскажите мне кто знает функцию для реализации следующей задачи! Допустим есть текст, мне необходимо записать в матрицу...

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

функции atoi и itoa - C++
у меня есть параметр типа unsigned char* , мне нужно его перевести в тип int, добавить к нему какое-то целое число, напрмиер 10, и...


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

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

Не по теме:

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

Yandex
Объявления
20.01.2013, 16:32     Результат atoi
Ответ Создать тему
Опции темы

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