Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
1 / 1 / 2
Регистрация: 29.09.2012
Сообщений: 59
1

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

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

Author24 — интернет-сервис помощи студентам
Скажите, пожалуйста, почему здесь ошибка
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  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.10.2013, 17:44
Ответы с готовыми решениями:

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

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

Какая из этих функций int Q(int w) int W(int y,int u,int i) сработает быстрее?
Если есть 2 функции(простые или перегруженные) к примеру Q(int w) int W(int y,int u,int i)или int...

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

17
159 / 98 / 25
Регистрация: 07.03.2013
Сообщений: 513
Записей в блоге: 1
01.10.2013, 17:48 2
Нужно подключить библиотеку в к-рой объявлена функция itoa
#include <что-то там>
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
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
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
01.10.2013, 17:52 4
itoa() не айс (и не стандарт). Лучше std::to_string (C++11) или std::stringstream
0
1 / 1 / 2
Регистрация: 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
Миниатюры
Преобразуем int в string  
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
01.10.2013, 17:57 6
aLarman,
C++
1
return StrStream.str();
Добавлено через 1 минуту
Цитата Сообщение от EfimenkoFedor Посмотреть сообщение
Summ2 - string
а Summ2[i] - char. Уберите квадратные скобки.
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.10.2013, 18:13 7
C++
1
2
sprintf (buffer, "%u", Value);
return std::string (buffer);
0
1 / 1 / 2
Регистрация: 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
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
01.10.2013, 18:19 9
novi4ok, зачем мешать C/C++, и почему %u?

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

Добавлено через 1 минуту
EfimenkoFedor, если нужно писать в std::string по индексу, нужно сначала позаботиться о том, что строка содержит достаточную длину.
1
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.10.2013, 18:55 13
Цитата Сообщение от Tulosba Посмотреть сообщение
Имхо, мешать сишные строки с плюсовыми, если этого можно избежать, не стоит.
а то что?
Цитата Сообщение от Tulosba Посмотреть сообщение
Щито?
думал, всякий знает. погуглИ.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
01.10.2013, 19:06 14
Цитата Сообщение от novi4ok Посмотреть сообщение
думал, всякий знает. погуглИ.
Анекдот знаю. Но такого ответа вместо: "Ошибся. Конечно же надо %d" не ожидал.
Цитата Сообщение от novi4ok Посмотреть сообщение
а то что?
Стиль должен быть един. Вот что.
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
01.10.2013, 19:10 15
стиль не этим определяется. так можно договориться до того, что всего, что допустимо в сях, нужно избегать с плюсах. тогда, правда, кроме "стиля" ничего не останется.
0
Неэпический
18105 / 10692 / 2062
Регистрация: 27.09.2012
Сообщений: 26,918
Записей в блоге: 1
02.10.2013, 03:46 16

Не по теме:

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



Добавлено через 2 минуты
Цитата Сообщение от novi4ok Посмотреть сообщение
а то что?
возможно тогда не возникнет таких ситуаций:
C++
1
2
3
4
5
    string Summ;
    
    for(int i=50; i>=0; i--){
        Summ[i] = '2';
    }
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
02.10.2013, 09:56 17
Цитата Сообщение от Croessmah Посмотреть сообщение
возможно тогда не возникнет таких ситуаций
Дело, кстати, не только в этом. И даже, по большей части, не в стиле, о чем я говорил ранее. Главный момент это всё же - типобезопасность. Сишные *printf полагаются исключительно на строку формата, и не учитывают реального типа аргументов. Отсюда возможные всякие финты, которые до запуска выявить проблематично.
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
02.10.2013, 19:46 18
Цитата Сообщение от Croessmah Посмотреть сообщение
возможно тогда не возникнет таких ситуаций:
C++
1
2
3
4
5
    string Summ;
    
    for(int i=50; i>=0; i--){
        Summ[i] = '2';
    }
как одно с другим?
0
02.10.2013, 19:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2013, 19:46
Помогаю со студенческими работами здесь

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

int to string
Доброго времени суток! У меня есть массив(string)= {02, 10, 15, 45, 09...} я их разделила на...

из int в string
объясните ,пжлста, где ошибка. собственно задание такое: Enter one real and one integer number:...

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


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru