Как отделить цифры от числа в C ++? - PullRequest
2 голосов
/ 01 декабря 2011

Я пытаюсь найти способ получить 5 цифр отдельно от целого числа.

cin >> option;      // Option to enter a number(don't worry about this)
if (option == 1)    // The option(don't worry)
{
    cout << " enter 5 digit key 0 to 9 \n";
    readin(key);    // The input number that needs the digits to be separated
}

Приведенный выше код просто вводит число, но я хочу как-то разделить цифры ... Но как?

Ответы [ 5 ]

3 голосов
/ 01 декабря 2011

как то так:

// handle negative values
key = ABS(key);

while(key > 0)
{
    // get the digit in the one's place (example: 12345 % 10 is 5)
    int digit = key % 10;

    // remove the digit in the one's place
    key /= 10;
}
2 голосов
/ 01 декабря 2011

Почему бы не прочитать каждый вход по отдельности и обработать их отдельно?

то есть

cout<< " enter 5 digit key 0 to 9 \n";
char str[5];
cin.get(str, 5);

for (int i = 0; i < 5; ++i)
{
    //do something with str[i];
}
1 голос
/ 01 декабря 2011

Вы можете использовать следующий фрагмент кода, он разделит цифры в обратном порядке в цикле while.

int i;
cin >> i;

while (i%10 != 0) 
{
  cout << i%10 << endl;
  i = i/10;
}
0 голосов
/ 14 декабря 2013
#include <iostream>
#include <string>
using namespace std;

int main()
{
  string str;
  cin >> str;

  size_t len = str.size();
  len = len > 5 ? 5 : len;

  for (size_t i=0; i<len; ++i)
  {
    cout << "digit " << i << " is: " << (str[i] - '0') << endl;
  }

  return 0;
}

Я делаю это таким образом

0 голосов
/ 14 декабря 2013

Метод цикла while будет заботиться только о цифрах без нулей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...