C преобразование числа в строку
Автор Ёанчез=) задал вопрос в разделе Другие языки и технологии
как в C++ массив чисел преобразовать в строку и получил лучший ответ
Ответ от Николай Веселуха[гуру]
#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++
Если в С-строки, можно
#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;}
Можно тоже поучаствовать в этом празднике жизни 🙂
#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;
}
Ну как, переводишь каждое число в набор цифр (тут про этот алгоритм каждый второй знает (% и /,если что) )),а цифры пишешь в массив char.
Верно, число 10(две цифры) в char не переводится одним махом)).
Ну и конечно, Н. Веселуха подключился с С++11,это уже тяжелая артеллерия).
1. Убрать из массива пробелы в отдельном цикле
2. Тоже в цикле просто поэлементно дописывать в строковую переменную