Convertir des char en int [dev-c++]

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 016 fois - Téléchargée 30 fois

Contenu du snippet

Vous faite un cin.getline() ou un cin >> et pas de bol votre chiffre est dans une chaîne de caractère alors la solution est là !

Source / Exemple :


int charint(char chaineaconv[10+1])
{
int nbtotal=0;
for (int i=0;chaineaconv[i]!='\0';nbtotal++,i++){}
if (nbtotal>=10){cerr << "\nErreur dans la longueur de la cha\x8Cne !\n";return -1;}
int nbrtemp;int nbrconv=0;
for (int i=0;chaineaconv[i]!='\0';i++)
{
    switch (chaineaconv[i])
    {
    case '0' : break;
    case '1' : nbrtemp=1;break;
    case '2' : nbrtemp=2;break;
    case '3' : nbrtemp=3;break;
    case '4' : nbrtemp=4;break;
    case '5' : nbrtemp=5;break;
    case '6' : nbrtemp=6;break;
    case '7' : nbrtemp=7;break;
    case '8' : nbrtemp=8;break;
    case '9' : nbrtemp=9;break;
    default : cerr << "\nErreur dans la cha\x8Cne !\n";return -1;
    } 
   int nbtota=nbtotal;
   nbtota-=i;
   int nbtotat=nbtota;
   nbtotat--;
   nbtota=1;
   for (int yi=0;yi<nbtotat;yi++){nbtota*=10;}
   nbrtemp= nbrtemp*nbtota;
   nbrconv+=nbrtemp;
}
return nbrconv;
}

Conclusion :


Il y a 10 chiffres maxi dans le nombre.

pour récupérer le nombre on appelle la fonction de la manière suivante :

int nombreentier=charint(nombreenlettre);

soit nombreentier le résultat

et pour vérifier si il y a eu erreur c'est

if (nombreentier==-1){cout << "Il y a eu une Erreur !!!";}

Voilà vous pouvez aussi visiter mon site si vous aimez les RPG ou si vous avez soif d'apprendre.

A voir également

Ajouter un commentaire

Commentaires

Kyokono
Messages postés
1
Date d'inscription
dimanche 1 juillet 2007
Statut
Membre
Dernière intervention
2 avril 2008
-
Hum, voilà ma version:

int convctoi(char s[10]){
int i=0;
int num=0;
bool negatif=0;

if((s[i]-'0')==(-3)){
i=1;
negatif=1;
}
while(s[i]){

num=(num*10)+(s[i]-'0');
i++;
}

if(negatif){
num*=(-1);
}

return num;
}

Simple, cours et prend les négatifs
cs_djl
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
5 -
de toutes facon on l'avais dit, si tu veux faire que des getline, parse ta string dans un istringstream, quoi de plus simple?
victorcoasne
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
3 -
c'est pas du int en char mais du char en int !
magic_Nono
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1 -
sscanf & sprinf suffisent svt

L'idée de base n'est pas mauvaise,
mais là je crois que c'est du std de chez std

++
victorcoasne
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
3 -
Remarquez : Le but c'est pas seulement la fonction mais surtout d'aider des débutants à comprendre aussi des choses

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.