Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

как в C++ массив чисел преобразовать в строку

Санчез=) Знаток (467), закрыт 11 лет назад
есть массив, например (4 654 5 300 65 6 3 7) и надо его сделать строкой (4654530065637) без пробелов
Дополнен 11 лет назад
а как их убрать, массв этто из чисел. то есть нулевой элемент - 4, первый - 654, второй - 5, третий 300 и так далее
Лучший ответ
Николай Веселуха Высший разум (360893) 11 лет назад
#include <iostream>
#include <string>
using namespace std;
int main() {
    unsigned numbers[] = { 4, 654, 5, 300, 65, 6, 3, 7 };
    const size_t size = sizeof(numbers) / sizeof(int);
    string str = "";
    for (rsize_t number = 0; number < size; number++)
        str += to_string(long long(numbers[number]));
    cout << str << " :)" << endl;
    cin.get();
    return 0;
}

P.S. Если не знать про метод to_string() и его перегрузки, а также про перегрузку операции += для класса string, то можно повозиться и с массивами ;-))
Источник: Р.Лафоре. Объектно-ориентированное программирование в C++. стр. 296. Стандартный класс string языка C++
Остальные ответы
Imobilazer Искусственный Интеллект (222406) 11 лет назад
1. Убрать из массива пробелы в отдельном цикле
2. Тоже в цикле просто поэлементно дописывать в строковую переменную
=Serge= Просветленный (36092) 11 лет назад
Ну как, переводишь каждое число в набор цифр (тут про этот алгоритм каждый второй знает (% и /,если что) ))),а цифры пишешь в массив char.
Верно, число 10(две цифры) в char не переводится одним махом)) .
Ну и конечно, Н. Веселуха подключился с С++11,это уже тяжелая артеллерия).
Krab Bark Искусственный Интеллект (191662) 11 лет назад
Если в С-строки, можно

#include <stdio.h>
#include <string.h>
int main(){
char b[20],c[100]={0}; int i,a[]={4,654,5,300,65,6,3,7},n=sizeof(a)/sizeof(int);
for(i=0;i< n;i++)sprintf(b,"%d",a[ i]),strcat(c,b); printf ("%s",c); getchar(); return 0;}
ra Высший разум (113233) 11 лет назад
Можно тоже поучаствовать в этом празднике жизни :-)

#include <sstream>
#include <iostream>

using namespace std;

int main() {
    int a[] = { 4, 654, 5, 300, 65, 6, 3, 7 };
    ostringstream o;
    for (size_t c = 0; c < sizeof(a) / sizeof(a[0]); ++c) o << a[c];
    cout << o.str() << endl;
}

> а как их убрать, массв этто из чисел. то есть нулевой элемент
А вот это не понял. Убрать кого? Если у тебя строка состоит из пробелов и чисел, то убрать все пробелы очень легко:

#include <string>
#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    string s = "4 654 5 300 65 6 3 7";
    s.erase(remove(s.begin(), s.end(), ' '), s.end());
    cout << s << endl;
}

Похожие вопросы