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

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

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

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

01.10.2013, 17:44. Просмотров 1115. Ответов 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;
}
0
Миниатюры
Преобразуем int в string  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2013, 17:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Преобразуем int в string (C++):

Реализация функции char *padl(const char *string, int len, int c=' ') - C++
Реализовать функцию возвращающую указатель на новую строку длины len, полученную из string либо удалением лишних символов слева , либо...

Как вставить элемент и вывести элементы на экран в map<string, map<string,int>> ? - C++
У меня есть map&lt;string, map&lt;string,int&gt;&gt;, в него надо добавить элементы (типа Ivanov potato 200) Использовать именно map&lt;string,...

Функция isspace и тип string: Не существует подходящей функции преобразования из "std::string" в "int" - C++
Добрый день! Я только начинаю изучать язык c++ по книге &quot;Язык программирования С++. Базовый курс 5-е изд 2014(Стэнли Б. Липпман)&quot;. ...

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 1
01.10.2013, 17:48 #2
Нужно подключить библиотеку в к-рой объявлена функция itoa
#include <что-то там>
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
01.10.2013, 17:51 #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;
    }
1
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.10.2013, 17:52 #4
itoa() не айс (и не стандарт). Лучше std::to_string (C++11) или std::stringstream
0
EfimenkoFedor
0 / 0 / 1
Регистрация: 29.09.2012
Сообщений: 59
01.10.2013, 17:55  [ТС] #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
0
Миниатюры
Преобразуем int в string  
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.10.2013, 17:57 #6
aLarman,
C++
1
return StrStream.str();
Добавлено через 1 минуту
Цитата Сообщение от EfimenkoFedor Посмотреть сообщение
Summ2 - string
а Summ2[i] - char. Уберите квадратные скобки.
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.10.2013, 18:13 #7
C++
1
2
sprintf (buffer, "%u", Value);
return std::string (buffer);
0
EfimenkoFedor
0 / 0 / 1
Регистрация: 29.09.2012
Сообщений: 59
01.10.2013, 18:17  [ТС] #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 в конце почему-то
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.10.2013, 18:19 #9
novi4ok, зачем мешать C/C++, и почему %u?

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

Добавлено через 1 минуту
EfimenkoFedor, если нужно писать в std::string по индексу, нужно сначала позаботиться о том, что строка содержит достаточную длину.
1
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.10.2013, 18:55 #13
Цитата Сообщение от Tulosba Посмотреть сообщение
Имхо, мешать сишные строки с плюсовыми, если этого можно избежать, не стоит.
а то что?
Цитата Сообщение от Tulosba Посмотреть сообщение
Щито?
думал, всякий знает. погуглИ.
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.10.2013, 19:06 #14
Цитата Сообщение от novi4ok Посмотреть сообщение
думал, всякий знает. погуглИ.
Анекдот знаю. Но такого ответа вместо: "Ошибся. Конечно же надо %d" не ожидал.
Цитата Сообщение от novi4ok Посмотреть сообщение
а то что?
Стиль должен быть един. Вот что.
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.10.2013, 19:10 #15
стиль не этим определяется. так можно договориться до того, что всего, что допустимо в сях, нужно избегать с плюсах. тогда, правда, кроме "стиля" ничего не останется.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2013, 19:10
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.10.2013, 19:10
Ответ Создать тему
Опции темы

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