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

Преобразование целочисленного конст. массива (инт) в строку - C++

Восстановить пароль Регистрация
 
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
10.10.2011, 22:52     Преобразование целочисленного конст. массива (инт) в строку #1
Имеется массив целых чисел, допустим 100 чисел в произвольном диапазоне. Необходимо получить его в качестве параметра, а возвратить необходимо строку, содержащую весь массив. Как это сделать? желательно используя дин. строки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
}{NiM
 Аватар для }{NiM
64 / 64 / 2
Регистрация: 25.11.2009
Сообщений: 283
10.10.2011, 23:18     Преобразование целочисленного конст. массива (инт) в строку #2
В общем, рассказывая алгоритм решения, то один из "красивых" вариантов - используя класс vector
решение таково - заводишь vector<char> и пробегаешь по всему массива на каждой i-й итерации заносишь полученное число нашу строку.
на выходе выдаешь этот вектор. заголовочный файл соответственно <vector>

менее красивый с использованием char* - один такой указатель работает как результирующий, другой как вспомогательный. на i-й операции берешь число, копируешь элементы вспомогательного массива и новое число в вспомогательный массивчик. потом меняешь указатель на результирующий.

третий вариант работа с переменными типа string это визуально кажется проще - просто добавляешь новые элементы в строку и все.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
10.10.2011, 23:24     Преобразование целочисленного конст. массива (инт) в строку #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <string>
#include <sstream>
#include <iterator>
#include <algorithm>
#include <cstddef>
 
std::string int_arr_to_str(int* arr, size_t n)
{
    std::ostringstream stream;
    std::copy(arr, arr + n, std::ostream_iterator<int>(stream));
    return stream.str();
}
 
int main()
{
    const size_t n = 10;
    int arr[n] = {1,2,3,4,5,6,7,8,9,10};
 
    std::string str = int_arr_to_str(arr, n);
    std::cout << str << '\n';
 
    return 0;
}
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
11.10.2011, 22:30  [ТС]     Преобразование целочисленного конст. массива (инт) в строку #4
рванулся реализовывать преобразование типов для класса:
C++
1
2
3
4
5
6
7
operator string()
    {
        string str;
        for(int i=0;i<n;i++)
            str+=mas[i];//поле класса - массив целых чисел
        return str;
    }
при попытке вывести через cout<< выдает адрес. через принтф - нулл, как быть?

Добавлено через 10 минут

Не по теме:

при попытке вывести через cout<< выдает адрес, если возвращать указатель, или не хочет вообще с переменной моего класса работать, через принтф - нулл, как быть?

Yandex
Объявления
11.10.2011, 22:30     Преобразование целочисленного конст. массива (инт) в строку
Ответ Создать тему
Опции темы

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