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

int в string - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
14.08.2012, 17:21     int в string #1
У меня в переменных x и y содержатся определенные числа, причем переменные типа string. Мне нужно как то сложить эти числа и поместить в новую переменную. Как мне это осуществить?



И еще один вопрос: как можно можно преобразовать тип string в int или наоборот, если в переменной содержится число
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2012, 17:21     int в string
Посмотрите здесь:

string to int, int to string C++
C++ Int to string
C++ из int в string?
C++ из int в string
C++ String в Int
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KostyaKulakov
Заблокирован
14.08.2012, 17:26     int в string #2
заключи в цикл. попробуй отуда вытащить и заточить в int
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
14.08.2012, 17:28     int в string #3
Я пользуюсь такими функциями:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
long long my_atoll(string instr)  //преобразует string  в число типа long long
{
    long long retval = 0;
    string::iterator iter = instr.begin();
    for (int i = 0; iter!=instr.end(); iter++) {
        retval = 10*retval + (*iter - '0');
    }
    return retval;
}
 
template <class T>
string numberToString(T val) //преобразует число в string
{
    string str;
    stringstream ss;
    ss<<val;
    ss>>str;
    return str;
}
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
14.08.2012, 17:29  [ТС]     int в string #4
Цитата Сообщение от KostyaKulakov Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string x = "5";
    string y = "32";
 
    cout << "x: " << x << ' ' << "y: " << y << endl;
 
    string result = x + y;
    cout << endl << result << endl;
}
А наоборот int в string можно?
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
14.08.2012, 17:33     int в string #5
Цитата Сообщение от Egor138 Посмотреть сообщение
string result = x + y;
Это конкатенация строк, а вам походу нужно получить сумму чисел хранящихся в строках.
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
14.08.2012, 17:44     int в string #6
Цитата Сообщение от yuron_477 Посмотреть сообщение
long long my_atoll(string instr) *//преобразует string *в число типа long long
{
* * long long retval = 0;
* * string::iterator iter = instr.begin();
* * for (int i = 0; iter!=instr.end(); iter++) {
* * * * retval = 10*retval + (*iter - '0');
* * }
* * return retval;
}
а зачем так мудрить? во первых зачем итератор? а во вторых можно и с помощью stringstream-а
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
14.08.2012, 17:46  [ТС]     int в string #7
Цитата Сообщение от yuron_477 Посмотреть сообщение
long long my_atoll(string instr) //преобразует string в число типа long long
{
long long retval = 0;
string::iterator iter = instr.begin();
for (int i = 0; iter!=instr.end(); iter++) {
retval = 10*retval + (*iter - '0');
}
return retval;
}
А можно немного подробнее, а то что то я не совсем разобрался

Добавлено через 48 секунд
Цитата Сообщение от aram_gyumri Посмотреть сообщение
а зачем так мудрить? во первых зачем итератор? а во вторых можно и с помощью stringstream-а


Предложи свой способ
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
14.08.2012, 17:49     int в string #8
Цитата Сообщение от Egor138 Посмотреть сообщение
Предложи свой способ
C++
1
2
3
4
5
6
7
long long my_atoll(std::string instr)  //преобразует string  в число типа long long
{
    long long retval;
    std::stringstream ss(instr);
    ss>>retval;
    return retval;
}
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
14.08.2012, 17:51     int в string #9
C++
1
2
3
4
5
char buffer [16];
std::string x = "1";
std::string y = "2";
::sprintf (buffer, "%d", ::atoi (x.c_str(()) + ::atoi(y.c_str()));
std::string z = buffer;
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
14.08.2012, 18:01     int в string #10
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
 
int main()
{
    std::string s = "123232";
    long long ll = std::stoll(s);
    std::cout << ll << std::endl;
    std::string s2 = std::to_string(ll);
    std::cout << s2 << std::endl;
}
http://liveworkspace.org/code/1b08bc...a223d92ad92ec7
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
14.08.2012, 18:03     int в string #11
ForEveR, std::to_string это из С++11?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
14.08.2012, 18:04     int в string #12
aram_gyumri, Ага. std::stoll аналогично.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
14.08.2012, 18:14     int в string #13
А где можно найти описания всех новых функций которые появились в С++11?
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
14.08.2012, 18:17     int в string #14
http://en.cppreference.com/w/
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
14.08.2012, 18:23     int в string #15
yuron_477, В стандарте языка. Наиболее полно и четко исключительно там.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2012, 01:17     int в string
Еще ссылки по теме:

C++ Int to String
Функция isspace и тип string: Не существует подходящей функции преобразования из "std::string" в "int" C++
Int to string C++

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

Или воспользуйтесь поиском по форуму:
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
15.08.2012, 01:17     int в string #16
или с помощью boost
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <boost\lexical_cast.hpp>
 
int main( int argc, char **argv )
{
    int integerNumber = boost::lexical_cast < int >( std::string( "123456" ) );
    std::cout << integerNumber << std::endl;
    return 0;
}
Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <string>
#include <boost\lexical_cast.hpp>
 
int main( int argc, char **argv )
{
    std::string stringNumber = boost::lexical_cast < std::string >( 1234 );
    std::cout << stringNumber << std::endl;
    return 0;
}
Yandex
Объявления
15.08.2012, 01:17     int в string
Ответ Создать тему
Опции темы

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