C ++ obtient chaque chiffre en int
J'ai un entier:
int iNums = 12476;
Et maintenant je veux obtenir de chaque chiffre, de iNums comme un entier. Quelque chose comme:
foreach(iNum in iNums){
printf("%i-", iNum);
}
De sorte que la sortie serait: "1-2-4-7-6-".
Mais j'ai réellement besoin de chaque chiffre, comme int pas comme char.
Merci pour l'aide.
source d'informationauteur Ilyssis
Vous devez vous connecter pour publier un commentaire.
Convertir en string, puis itérer sur les personnages. Pour la conversion vous pouvez utiliser
std::ostringstream
par exemple:Btw généralement utilisé à long terme (pour ce que vous appelez "nombre") est "chiffres" - merci de l'utiliser, car il rend le titre de votre post beaucoup plus compréhensible 🙂
Ici est un générique si la solution récursive qui donne un vecteur de chiffres:
Étant qu'il y a est un relativement petit nombre de chiffres, la récursivité est parfaitement délimitée.
Je n'ai pas fait de test, il suffit d'écrire ce qui est dans ma tête. excuse pour toute erreur de syntaxe
Ici est en ligne ideone démo
Vous pouvez le faire avec cette fonction:
Tiré de D. Shawley de réponse, peut aller un peu plus loin de répondre entièrement par outputing le résultat:
Je ne sais pas si c'est plus rapide ou plus lent ou de valeur, mais ce serait une alternative:
J'ai remarquer que iNums fait allusion à éventuellement être saisie par l'utilisateur, et si l'entrée de l'utilisateur est une chaîne de caractères en premier lieu, vous ne devez pas passer par les tracas de la conversion de l'int d'une chaîne de caractères.
(to_string pourrait être utilisé en c++11)
@Abyx réponse, mais utilise
div
de sorte que seulement 1 division se fait par chiffre.De sortie:
N. B. ne fonctionne que pour les non-négatif ints.
Pour obtenir des chiffres à "pos" (à partir de la position 1 comme Chiffre le Moins Significatif (LSD)):
De façon séquentielle obtenir des chiffres:
Ma solution:
La réponse que j'ai utilisé est de cette simple fonction:
Espère que quelqu'un trouve cette pratique!
Je sais que c'est un vieux post, mais toutes ces réponses ont été inacceptable pour moi, donc j'ai écrit mon propre!
Mon but était de générer un nombre à un écran, d'où le nom de fonction.