Vérifier que la CHAINE caracteres entrée est un ENTIER

Signaler
Messages postés
22
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
7 avril 2010
-
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
-
Bien le bonjour,

J'aurais bsoin d'un petit coup de main, j'aimerais savoir si il existe une fonction ou quoi, qui permettrait de vérifier que l'utilisateur entre bien des entiers positif et non autre choses ( textes,double,nombre négatif etc... )...
J'ai entendu parler de strchr(),isdigit(),sscanf etc...

mais je n'y arrive pas ! J'arrive a dire si c'est un négatif ou un double mais je n'arrive pas à dire si ce n'est pas des lettres qui sont entrées au clavier.

Merci d'avance!!

2 réponses

Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
13
Programme fenêtré ?
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut
Il faut que tu vérifies que dans ta chaine de caractère il n'y a bien que des chiffres: S'il y a un . ou une , ou un - ou tout autre caractère ce ne sera pas un entier positif.Tu peux donx faire qqchose comme cela:
char MaChaine[20],*P;
int Res;
scanf("%s",MaChaine);
P=MaChaine;
int Ok=true;
while(P!='\0'){
  if(*P<'0' || *P>'9')  //caractère autre qu'un chiffre
  {
      Ok=false;
      break;
  }
  P++
}
if(Ok) Res=atoi(MaChaine);

A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr