Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
25 / 25 / 7
Регистрация: 02.12.2010
Сообщений: 824
1

Результат atoi

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

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

То есть нужно сравнить является ли содержимое строки
>= −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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2013, 16:16
Ответы с готовыми решениями:

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

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

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

atoi не работает!
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; using namespace std; int main(){ ...

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

Не по теме:

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

0
20.01.2013, 16:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2013, 16:32
Помогаю со студенческими работами здесь

замена atoi
Всем привет. Я всегда, когда надо, перевожу из string в int с помощью функции atoi. Но atoi не...

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru