Comment séparer les chiffres d'un nombre en C ++?
Question
Je suis en train de trouver un moyen d'obtenir 5 chiffres séparément à partir d'un nombre entier.
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
}
Le code ci-dessus seulement le nombre des entrées, mais je veux séparer les chiffres en quelque sorte ... Mais comment?
La solution
quelque chose comme ceci:
// 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;
}
Autres conseils
Pourquoi ne pas lire chaque entrée individuellement et les traiter individuellement?
i.e..
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];
}
Vous pouvez utiliser l'extrait de code suivant, il se séparera les chiffres dans l'ordre inverse boucle inwhile
.
int i;
cin >> i;
while (i%10 != 0)
{
cout << i%10 << endl;
i = i/10;
}
#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;
}
Je le fais de cette façon
La méthode en boucle ne prendre soin de chiffres sans zéros.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow