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

Crocandrew Messages postés 22 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 7 avril 2010 - 27 avril 2009 à 18:25
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 - 28 avril 2009 à 08:47
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

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
27 avril 2009 à 19:40
Programme fenêtré ?
0
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
28 avril 2009 à 08:47
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
0
Rejoignez-nous