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

Регистрация
13 Ноя 2013
Сообщения
91
Репутация
-9
Спасибо
1
Монет
0
Например, при вводе числа 12345 массив будет тоже Int и состоять из элементов: {1, 2, 3, 4, 5}
 
Так вот можно для натуральных 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 = a[m - i];
for (i = 0; i < len; i++) cout << A << ' ';
delete [] a; }

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

int main()
{
vector number;
char ch;
while ((ch = _getch()) != 13) //пока не нажали enter
{
if (ch >= '0' && ch
 
если по простому, но не сильно эффективно - sprintf и потом по массиву пройти и '0' отнять от каждого эл.
или через floor(log10(n))+1 вычислять длину массива и проходя с конца получать каждую цифру чрез % и /
 
Назад
Сверху