C/C++

Как записать int в массив посимвольно на c++?

Например, при вводе числа 12345 массив будет тоже Int и состоять из элементов: {1, 2, 3, 4, 5}
 #pragma warning(disable:4996) 
#include
#include

using namespace std;

char toChar(char ch) {
return ch + 48;
}

int main(int, char**, char**) {
int num;
//12345
cin >> num;
deque result;
while (num != 0) {
result.push_front(toChar(num % 10));
num /= 10;
}
for (auto& i : result) {
cout
Иван Королёв
Иван Королёв
878
Лучший ответ
вводите как символ сhar и проверяйте на цифру и сохряняйте
Gr- 13
Gr- 13
65 189
если по простому, но не сильно эффективно - sprintf и потом по массиву пройти и '0' отнять от каждого эл.
или через floor(log10(n))+1 вычислять длину массива и проходя с конца получать каждую цифру чрез % и /
Так вот можно для натуральных n:

#include <iostream>
using namespace std; int main()
{ int i, len = 0, m, n, *a = new int [10];
cout << "n: "; cin >> n; m = n; while (m)
{ a[len] = m % 10; len++; m /= 10; }
int *A = new int [len]; m = len - 1;
for (i = 0; i <= len; i++) A[i] = a[m - i];
for (i = 0; i < len; i++) cout << A[i] << ' ';
delete [] a; }

То есть вводим n, заводим динамический массив a, в который записываем цифры числа n в обратном порядке (то есть, например, число 1234567890 сначала запишется в массив из десяти элементов {0,1,2,3,4,5,6,7,8,9}), потом массив а инвертируем в массив A, а массив а стираем за ненадобностью. Только вот для одной десятичной цифры использовать тип int, в котором 32 бита, слишком расточительно, потому что для этого вполне хватает и полбайта...
Григорй Хомин
Григорй Хомин
66 572
 #include  
#include
#include
using namespace std;

int main()
{
vector number;
char ch;
while ((ch = _getch()) != 13) //пока не нажали enter
{
if (ch >= '0' && ch