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

Конвертация из int в string и наоборот - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 5.00
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
10.07.2011, 10:46     Конвертация из int в string и наоборот #1
Вопрос такой: Как переменной типа string записать значение типа int и наоборот. Помогите плиз никак не разбирусь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2011, 10:46     Конвертация из int в string и наоборот
Посмотрите здесь:

Конвертация int в char и обратно C++
Конвертация int в char* C++
Конвертация из heximal в int C++
Конвертация из int в char C++
Конвертация qint64 в int и обратно C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
10.07.2011, 11:03     Конвертация из int в string и наоборот #2
itoa?

Добавлено через 3 минуты
или http://www.cplusplus.com/reference/i...istringstream/
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
10.07.2011, 11:06     Конвертация из int в string и наоборот #3
fenix117,

С использованием stringstream, так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <sstream>
#include <string>
 
int main()
{
    std::istringstream in(std::string("100"));
    std::ostringstream out;
    int num = 100;
   
    in >> num;
        std::cout << num << std::endl;
 
    num = 1000;
    out << num;
    std::cout << out.str() << std::endl;
 
    return 0;
}
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
10.07.2011, 12:33  [ТС]     Конвертация из int в string и наоборот #4
с itoa копался, так и не заработало,
nameless, напиши плиз подробнее я не пойму даж где у тебя переменная типа string
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
10.07.2011, 12:38     Конвертация из int в string и наоборот #5
fenix117,

Цитата Сообщение от fenix117 Посмотреть сообщение
я не пойму даж где у тебя переменная типа string
C++
1
2
std::string str("100");
std::istringstream in(str);
Надеюсь так понятнее.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
10.07.2011, 12:48     Конвертация из int в string и наоборот #6
boost::lexical_cast
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
10.07.2011, 12:49     Конвертация из int в string и наоборот #7
чё там копаться то, переводишь сначала с помощью c_str в char* и итоашишь. Но это не с++ way, правильно будет как nameless показал
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
10.07.2011, 12:49     Конвертация из int в string и наоборот #8
Цитата Сообщение от fenix117 Посмотреть сообщение
с itoa копался, так и не заработало,
Что могло интересно не заработать?

C
1
2
char buffer[32];
printf("%s", itoa(100, buffer, 10));
grizlik78
Эксперт С++
 Аватар для grizlik78
1884 / 1416 / 102
Регистрация: 29.05.2011
Сообщений: 2,961
10.07.2011, 12:54     Конвертация из int в string и наоборот #9
Цитата Сообщение от pito211 Посмотреть сообщение
чё там копаться то, переводишь сначала с помощью c_str в char* и итоашишь. Но это не с++ way
Это даже не C-way, так как itoa, как известно, в стандартной библиотеке нет.
Onishare
30 / 30 / 5
Регистрация: 07.05.2011
Сообщений: 50
10.07.2011, 13:16     Конвертация из int в string и наоборот #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
string Int2String(int value) {
  string res;
  bool continue = true;
  do {
    switch(value % 10) {
      case 0: res = "0" + res; break;
      case 1: res = "1" + res; break;
      case 2: res = "2" + res; break;
      case 3: res = "3" + res; break;
      case 4: res = "4" + res; break;
      case 5: res = "5" + res; break;
      case 6: res = "6" + res; break;
      case 7: res = "7" + res; break;
      case 8: res = "8" + res; break;
      case 9: res = "9" + res; break;
      default: continue = false;
    }
    value /=  10;
  } while (continue && value);
  return res;
}
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
10.07.2011, 13:28  [ТС]     Конвертация из int в string и наоборот #11
Я еще многого не знаю, для меня самый понятный вариант как у
Onishare, switch-ем сделаю, т.к. у меня переменная может равняться только 1,2,3,4 или 5.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
10.07.2011, 14:03     Конвертация из int в string и наоборот #12
C
1
2
char buff[100];
sprintf( buff, "%d", 123 );
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
10.07.2011, 16:22     Конвертация из int в string и наоборот #13
Цитата Сообщение от Onishare Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
string Int2String(int value) {
  string res;
  bool continue = true;
  do {
    switch(value % 10) {
      case 0: res = "0" + res; break;
      case 1: res = "1" + res; break;
      case 2: res = "2" + res; break;
      case 3: res = "3" + res; break;
      case 4: res = "4" + res; break;
      case 5: res = "5" + res; break;
      case 6: res = "6" + res; break;
      case 7: res = "7" + res; break;
      case 8: res = "8" + res; break;
      case 9: res = "9" + res; break;
      default: continue = false;
    }
    value /=  10;
  } while (continue && value);
  return res;
}
Надо писать короче:
C++
1
2
3
4
5
6
7
8
9
10
11
string Int2String(int value)
{
  string res;
  char ch = 0;
  char digit[] = "0123456789";
  do { ch = value % 10;
       res = digit[ch] + res;
    value /=  10;
  } while (value);
  return res;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2011, 23:11     Конвертация из int в string и наоборот
Еще ссылки по теме:

C++ Конвертация int в char
Конвертация переменной типа string в массив int C++
C++ Рекурсивная конвертация чисел int в string и наоборот (ошибка)

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

Или воспользуйтесь поиском по форуму:
schdub
 Аватар для schdub
2903 / 1247 / 223
Регистрация: 19.01.2009
Сообщений: 3,219
Завершенные тесты: 1
10.07.2011, 23:11     Конвертация из int в string и наоборот #14
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
bool continue = true;
continue - зарезервированное слово, что в С++ теперь можно использовать под имена переменных зарезервированные слова?
Yandex
Объявления
10.07.2011, 23:11     Конвертация из int в string и наоборот
Ответ Создать тему
Опции темы

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