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

Преобразование строки в число - C++

Восстановить пароль Регистрация
 
FrolBrol
 Аватар для FrolBrol
14 / 14 / 2
Регистрация: 02.01.2012
Сообщений: 73
19.10.2012, 22:05     Преобразование строки в число #1
какой аналог есть в c++ на strtoint inttostr?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
19.10.2012, 22:14     Преобразование строки в число #2
atoi google
PinkPink
9 / 9 / 2
Регистрация: 10.05.2012
Сообщений: 279
19.10.2012, 23:10     Преобразование строки в число #3
Цитата Сообщение от FrolBrol Посмотреть сообщение
какой аналог есть в c++ на strtoint inttostr?
функция int atoi(const char * str);
преобразует строку в число.
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
20.10.2012, 00:22     Преобразование строки в число #4
из строки в целое число - atoi()
из строки в дробное число - atof()
из целого числа в строку - itoa()
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
20.10.2012, 01:21     Преобразование строки в число #5
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
31
32
33
34
35
36
37
38
39
40
#include <cmath>
 
double arrayToInteger(const char* st)
{
    double ret = 0;
    const int sign = *st == '-' ? -1 : 1;
    st += *st == '+' || *st == '-';
    while (*st >= '0' && *st <= '9')
    {
        ret *= 10.;
        ret += *st - '0';
        ++st;
    }
    if (*st == '.')
    {
        ++st;
        double k = 1;
        while (*st >= '0' && *st <= '9')
        {
            k /= 10;
            ret += k * (*st - '0');
            ++st;
        }
    }
    if (*st == 'e')
    {
        ++st;
        int p = 0;
        const int s = *st == '-' ? -1 : 1;
        st += *st == '+' || *st == '-';
        while (*st >= '0' && *st <= '9')
        {
            p *= 10;
            p += *st - '0';
            ++st;
        }
        return sign * ret * pow(10., p * s);
    }
    return sign * ret;
}
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
20.10.2012, 01:59     Преобразование строки в число #6
CEBEP, arrayToInteger должна возвращать int. М.б. arrayToDouble?
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
20.10.2012, 09:54     Преобразование строки в число #7
I.M., сори, не тестил. Действительно оно возвращает double. Как-то не обратил внимания.

Не по теме:

На самом деле парню достаточно было загуглить то что я написал в самом первом ответе, для чего написаны остальные 5 я понять не могу... Очевидно, они имеют мало общего с темой топика и лучше понимать их как флуд.

silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.10.2012, 11:10     Преобразование строки в число #8
atoi и её аналоги плохи тем, что при ошибке разбора возвращает 0, что невозможно отличить от разбора строки "0". itoa вообще не является стандартной. Поскольку мы в разделе С++, посоветовал бы глядеть в сторону stringstream'ов, а то и boost::lexical_cast.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.10.2012, 11:21     Преобразование строки в число #9
Не помешало бы упомянуть еще и std::stoul, std::stoull, std::stod и их аналоги.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2012, 14:35     Преобразование строки в число
Еще ссылки по теме:

C++ Преобразование строки в число
Преобразование строки в число C++
C++ Преобразование строки в число

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2012, 14:35     Преобразование строки в число #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
 
int main()
{
 string str = "-345";
 int n = 0;
 
 stringstream s;
 
 s << str;
 s >> n;
 cout << n * 2 <<  endl;
 
 system("pause");
 return 0;
}
Миниатюры
Преобразование строки в число  
Yandex
Объявления
24.10.2012, 14:35     Преобразование строки в число
Ответ Создать тему
Опции темы

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