У меня есть код ниже, в котором пользователь вводит номер своей карты, при этом каждая цифра сохраняется как элемент в массиве переменных digits[]
.
Я пытаюсь добиться остановки цикла for
после сохранения всех цифр, однако я пытаюсь установить цикл в соответствии с длиной введенного номера карты.
Я попробовал приведенный ниже код, используя sizeof(cardNo)
, сохраненный в переменной длине и установив длину в качестве условия цикла.
Допустим, пользователь вводит 1234 результат, который я получаю с помощью приведенного ниже кода, который выполняется:43210000, когда то, что я ищу, это просто 4321.
, если я установлю int digits
на digits[4]
и условие цикла на <4, это даст мне 4321, но, очевидно, это ограничивает меня, когда пользователь вводит только 4цифры, когда на самом деле я хочу, чтобы это было гибким, т.е. если они введут 6 цифр, это даст мне 123456, если они введут 8 цифр, это даст мне 12345678 и т. д. </p>
Любые идеи или предложения, пожалуйста?
long cardNo = get_long("Enter Card Number: ");
int length = sizeof(cardNo);
int count = 0;
int digits[length];
for (int i = 0; i < length; i++) {
digits[i] = cardNo % 10;
cardNo /= 10;
printf("%i\n", digits[i]);
}
printf("\n");