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

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

Восстановить пароль Регистрация
 
VladSharikov
 Аватар для VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
20.01.2013, 16:16     Результат atoi #1
привет
необходимо написать функцию, позволяющую проверить является ли содержимое строки, содержащей только цифры и/или знак + или - на первом месте целым числом.

То есть нужно сравнить является ли содержимое строки
>= −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
Посмотрите здесь:

C++ Atoi, atof.
C++ atof и atoi
atoi() C++
atoi C++
C++ Аналог atoi в С++
C++ функция atoi
unsigned itoa and atoi C++
C++ atoi не работает!

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

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

Не по теме:

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

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

Текущее время: 09:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru