scraper, Ууууу как всё запущено. Тут брат без учебников не обойтись. Никакие уловки не помогут. И боятся не надо, особенно, если хочешь быть программистом. Дело в том, что в С++ запись [] равносильна записи *. Попробуй записать свой пример
char *a = "12345";
в виде
char a[] = "12345";
Чтобы тебе легче жилось.
А вообще-то ты не понимаешь, что значит массив.
Любой кусок памяти можно рассматривать как массив, например массив байт. Или слов и тд. В данном случае это просто кусок памяти, о котором известно следущее:
адерс начала - это твоя *a
размер элементов массива - это твой char
Пример:
Доступ к третьему элементу массива можно записать в приятном для математиков виде, типа a[2], или же в виде а+2*sizeof(char) - эта запись более привычна для программистов тк явно видно что просиход вычисление адреса необходимого элемента относительно начала блока (массива). Это громаднейшее преимущество массивов перед списками. Если в списках нужна итерация, и соответственно пропорционально время получения доступа к необходимому элементу, то в массивах доступ к любому элементу осуществляется простой операцией сложения.
В общем вооружайся Страуструпом и вникай. Иначе ещё многого можешь бояться.
зы Ещё один момент, который тебе надо проработать - перевод чисел из одной системы в другую. Ведь это же элементарно:
1234 = 4*1 + 3*10 + 2*100 + 1*1000
Или?
Небольшая подсказка, как из символа '2' получить цифру 2?
Очень просто - надо от символа '2' отнять символ '0':
int nDig = a[ i ] - '0';