Другие языки программирования и технологии
как в C++ массив чисел преобразовать в строку
есть массив, например (4 654 5 300 65 6 3 7) и надо его сделать строкой (4654530065637) без пробелов
#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, то можно повозиться и с массивами ;-))
#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, то можно повозиться и с массивами ;-))
1. Убрать из массива пробелы в отдельном цикле
2. Тоже в цикле просто поэлементно дописывать в строковую переменную
2. Тоже в цикле просто поэлементно дописывать в строковую переменную
Если в С-строки, можно
#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 <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;
}
#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,это уже тяжелая артеллерия).
Верно, число 10(две цифры) в char не переводится одним махом)) .
Ну и конечно, Н. Веселуха подключился с С++11,это уже тяжелая артеллерия).
Похожие вопросы
- c++, массивы, строки
- Выделить в массиве число каким-нибудь цветом - C++
- Дан линейный массив чисел N. N вводит пользователь. Вывести все простые числа массива.
- Написать программу, которая формирует два массива чисел
- C++ массивы. Пожалуйста, помогите!
- как вывести на экран из массива чисел минимальное число, стоящие на нечетных позициях?
- C++ массив array в классе
- Определить является ли кол-во положительных элементов массива числом чётных
- Как на Си, не с++ одномерный массив чисел
- Помогите!! C ++ Вводится число от 1...999. Вывести данное число на естественном языке. Например, 52 – пятьдесят два.