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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
EfimenkoFedor
0 / 0 / 1
Регистрация: 29.09.2012
Сообщений: 59
#1

Преобразуем int в string - C++

01.10.2013, 17:44. Просмотров 1076. Ответов 17
Метки нет (Все метки)

Скажите, пожалуйста, почему здесь ошибка
C
1
2
3
4
5
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
using namespace std;
C
1
2
3
4
5
6
7
8
string convertInt(int number)
{
    string str;
    char buffer [33];
    itoa(number, buffer, 10);
    str = (const char*) buffer;
    return str;
}
Миниатюры
Преобразуем int в string  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2013, 17:44     Преобразуем int в string
Посмотрите здесь:

Int to String - C++
Подскажите стандартную функцию для конвертирования Int to String или других чисел в string

String в Int - C++
Как можно преобразовать String в Int ? Не могли бы вы привести пример на массиве строк ?

из int в string - C++
объясните ,пжлста, где ошибка. собственно задание такое: Enter one real and one integer number: 2.71828183 1392 The real is: _ _ _ _...

string to int, int to string - C++
Вообщем интересует сабж. Нашел в интернете две функции atoi &amp; itoa. Как-то не сраслось с ними. Может пояснит кто их работу, пожалуйста....

Int to string - C++
Какой способ перевода Int в String самый лёгкий ? В делфи привык писать Inttostr (i) , а на с++ такое есть ?

Int to string - C++
Помогите перевести из Int в String, среда разработки: VS10 Express

int в string - C++
У меня в переменных x и y содержатся определенные числа, причем переменные типа string. Мне нужно как то сложить эти числа и поместить в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 478
Записей в блоге: 1
01.10.2013, 17:48     Преобразуем int в string #2
Нужно подключить библиотеку в к-рой объявлена функция itoa
#include <что-то там>
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
01.10.2013, 17:51     Преобразуем int в string #3
попробуйте так
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <string>
#include <sstream>
 
...
std::string NumberToString(int Value)
    {
        std::stringstream StrStream;
        StrStream<<Value;
        std::string ValueAsString;
        StrStream>>ValueAsString;
        return ValueAsString;
    }
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.10.2013, 17:52     Преобразуем int в string #4
itoa() не айс (и не стандарт). Лучше std::to_string (C++11) или std::stringstream
EfimenkoFedor
0 / 0 / 1
Регистрация: 29.09.2012
Сообщений: 59
01.10.2013, 17:55  [ТС]     Преобразуем int в string #5
Цитата Сообщение от aLarman Посмотреть сообщение
попробуйте так
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <string>
#include <sstream>
 
...
std::string NumberToString(int Value)
    {
        std::stringstream StrStream;
        StrStream<<Value;
        std::string ValueAsString;
        StrStream>>ValueAsString;
        return ValueAsString;
    }
Summ2 - string
Миниатюры
Преобразуем int в string  
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.10.2013, 17:57     Преобразуем int в string #6
aLarman,
C++
1
return StrStream.str();
Добавлено через 1 минуту
Цитата Сообщение от EfimenkoFedor Посмотреть сообщение
Summ2 - string
а Summ2[i] - char. Уберите квадратные скобки.
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.10.2013, 18:13     Преобразуем int в string #7
C++
1
2
sprintf (buffer, "%u", Value);
return std::string (buffer);
EfimenkoFedor
0 / 0 / 1
Регистрация: 29.09.2012
Сообщений: 59
01.10.2013, 18:17  [ТС]     Преобразуем int в string #8
А почему это неправильно работает
C
1
2
3
4
5
6
7
8
9
10
string Summ2(string Number_1, string Number_2){
    
    string Summ;
    
    for(int i=50; i>=0; i--){
        Summ[i] = '2';
    }
    
    return Summ;
}
Я хочу чтобы на выходе была строка из 51 символа "2"

но на выходе
C
1
2
3
AnswerNumber = Summ2(FirstNumber, SecondNumber);
    
    printf("Итог\n%s\n", AnswerNumber.c_str());
Я получаю
Код
222222222222222222222221
Это явно меньше 51 символа и еще 1 в конце почему-то
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.10.2013, 18:19     Преобразуем int в string #9
novi4ok, зачем мешать C/C++, и почему %u?

Добавлено через 2 минуты
Цитата Сообщение от EfimenkoFedor Посмотреть сообщение
А почему это неправильно работает
Потому что Вы неправильно написали. Если нужно создать std::string из нескольких одинаковых символов, используйте соответствующий конструктор:
C++
1
string (size_t n, char c);
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.10.2013, 18:20     Преобразуем int в string #10
Цитата Сообщение от Tulosba Посмотреть сообщение
novi4ok, зачем мешать C/C++, и почему %u?
0. тема - в "с++ > c++ для начинающих". sprintf - уже нелегально?
1. с прямым углом спутал.
EfimenkoFedor
0 / 0 / 1
Регистрация: 29.09.2012
Сообщений: 59
01.10.2013, 18:25  [ТС]     Преобразуем int в string #11
Цитата Сообщение от Tulosba Посмотреть сообщение
Потому что Вы неправильно написали. Если нужно создать std::string из нескольких одинаковых символов, используйте соответствующий конструктор:
C++
1
string (size_t n, char c);
Не ну одинаковые символы это я для примера написал, там будут всегда символы цифр, но не всегда одинаковые
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.10.2013, 18:38     Преобразуем int в string #12
Цитата Сообщение от novi4ok Посмотреть сообщение
0. тема - в "с++ > c++ для начинающих". sprintf - уже нелегально?
Имхо, мешать сишные строки с плюсовыми, если этого можно избежать, не стоит.
Цитата Сообщение от novi4ok Посмотреть сообщение
1. с прямым углом спутал.
Щито?

Добавлено через 1 минуту
EfimenkoFedor, если нужно писать в std::string по индексу, нужно сначала позаботиться о том, что строка содержит достаточную длину.
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.10.2013, 18:55     Преобразуем int в string #13
Цитата Сообщение от Tulosba Посмотреть сообщение
Имхо, мешать сишные строки с плюсовыми, если этого можно избежать, не стоит.
а то что?
Цитата Сообщение от Tulosba Посмотреть сообщение
Щито?
думал, всякий знает. погуглИ.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.10.2013, 19:06     Преобразуем int в string #14
Цитата Сообщение от novi4ok Посмотреть сообщение
думал, всякий знает. погуглИ.
Анекдот знаю. Но такого ответа вместо: "Ошибся. Конечно же надо %d" не ожидал.
Цитата Сообщение от novi4ok Посмотреть сообщение
а то что?
Стиль должен быть един. Вот что.
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.10.2013, 19:10     Преобразуем int в string #15
стиль не этим определяется. так можно договориться до того, что всего, что допустимо в сях, нужно избегать с плюсах. тогда, правда, кроме "стиля" ничего не останется.
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,051
Записей в блоге: 3
Завершенные тесты: 1
02.10.2013, 03:46     Преобразуем int в string #16

Не по теме:

Цитата Сообщение от Algoritmer Посмотреть сообщение
Нужно подключить библиотеку в к-рой объявлена функция itoa
#include <что-то там>
прям в "библиотеке" объявлена?



Добавлено через 2 минуты
Цитата Сообщение от novi4ok Посмотреть сообщение
а то что?
возможно тогда не возникнет таких ситуаций:
C++
1
2
3
4
5
    string Summ;
    
    for(int i=50; i>=0; i--){
        Summ[i] = '2';
    }
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.10.2013, 09:56     Преобразуем int в string #17
Цитата Сообщение от Croessmah Посмотреть сообщение
возможно тогда не возникнет таких ситуаций
Дело, кстати, не только в этом. И даже, по большей части, не в стиле, о чем я говорил ранее. Главный момент это всё же - типобезопасность. Сишные *printf полагаются исключительно на строку формата, и не учитывают реального типа аргументов. Отсюда возможные всякие финты, которые до запуска выявить проблематично.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2013, 19:46     Преобразуем int в string
Еще ссылки по теме:

string в int - C++
народ подскажите пожалуйств как строку в число перевести? например string в int

Перевод из int в string - C++
Подскажите, пожалуйста, как перевести целое число в строку читал вот эту темку, но не понял ничего :(

int to std::string - C++
Не подскажите как перевести int в std::string

Преобразование string в int - C++
Всем привет, нужно преобразовать string в int #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;stdio.h&gt;...

Преобразование string в int - C++
у меня вот какая проблема.Я пытаюсь считывать строку,искать в ней числа и записывать их в двумерный массив целых чисел,подсчитывая их...


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

Или воспользуйтесь поиском по форуму:
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
02.10.2013, 19:46     Преобразуем int в string #18
Цитата Сообщение от Croessmah Посмотреть сообщение
возможно тогда не возникнет таких ситуаций:
C++
1
2
3
4
5
    string Summ;
    
    for(int i=50; i>=0; i--){
        Summ[i] = '2';
    }
как одно с другим?
Yandex
Объявления
02.10.2013, 19:46     Преобразуем int в string
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru