2010-09-22 7 views
4

Comment est-ce que je peux couper les premiers chiffres d'un nombre afin d'afficher seulement les deux derniers chiffres, sans utiliser la bibliothèque. Par exemple:Comment couper les premiers chiffres? C++

1923 à 23

2001 à 01

1234 à 34

123 à 23

avec seulement

#include <iomanip> 
#include <iostream> 

Merci!

Répondre

8

Si vous êtes juste travailler avec des nombres entiers, je vous suggère de simplement faire mod % 100 pour la simplicité:

int num =2341; 

cout << num%100; 

afficherait 41.

Et si vous avez besoin d'un zéro le faire:

std::cout << std::setw(2) << std::setfill('0') << num%100 << std::endl; 
+1

C'est ce que j'ai pensé en lisant la question. Cool. – slashmais

+1

Ceci est beaucoup plus simple, vous avez mon vote (puisque sa question implique qu'il ne travaille pas avec les chaînes, pas #include ) – Marlon

+1

Vous devez définir la largeur ostream et le caractère de remplissage, sinon ce code n'émet pas les zéros de tête. 'std :: cout << std :: setw (2) << std :: setfill ('0') << 3 << '\ n';' – Rudi

6

Si vos numéros sont sous forme int (plutôt que sous forme de chaîne), vous devriez penser à utiliser le modulo operator.

Si les chiffres sont en char [] forme, il y a une solution simple qui implique l'indexation dans la chaîne, comme:

char *myString = "ABCDE"; 
int lengthOfMyString = 5; 
cout << myString[lengthOfMyString - 3] 
    << myString[lengthOfMyString - 5] 
    << myString[lengthOfMyString - 4]; 
//outputs the word CAB 
+0

Wow merci, c'était extrêmement simple. J'étais définitivement en train de penser à ça. – dubyaa

+0

Super, je suis content d'avoir pu aider. Ce serait merveilleux si vous pouviez cliquer sur la coche afin d'accepter officiellement ma réponse. – AlcubierreDrive

+2

Pour afficher uniquement les deux derniers caractères (comme demandé), il est 'cout << & myString [lengthOfString - 2]', où l'opérateur & prend l'adresse de ce caractère, résultant de l'opérateur << streaming a char *, supposé être ASCIIZ qui fonctionne bien ici. Pour std :: string, simplement 'myString.substr (myString.size() - 2);' Pour les deux, vous devez savoir ou vérifier que la chaîne a au moins 2 caractères en premier. –

Questions connexes