c преобразование строки в число



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++

Ответ от Krab Bark[гуру]
Если в С-строки, можно
#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[гуру]
Можно тоже поучаствовать в этом празднике жизни 🙂
#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;
}

Ответ от =Serge=[гуру]
Ну как, переводишь каждое число в набор цифр (тут про этот алгоритм каждый второй знает (% и /,если что) )),а цифры пишешь в массив char.
Верно, число 10(две цифры) в char не переводится одним махом)).
Ну и конечно, Н. Веселуха подключился с С++11,это уже тяжелая артеллерия).

Ответ от Imobilazer[гуру]
1. Убрать из массива пробелы в отдельном цикле
2. Тоже в цикле просто поэлементно дописывать в строковую переменную

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: как в C++ массив чисел преобразовать в строку
Itoa Си на Википедии
Посмотрите статью на википедии про Itoa Си
Itoa Си на Википедии
Посмотрите статью на википедии про Itoa Си
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*