begin process at 2012 05 28 08:17:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Chiffre ou lettre ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Chiffre ou lettre ?

mercredi 21 juin 2006 à 09:44:11 | Chiffre ou lettre ?

ralebole

Bonjour a tous
Je voudrais savoir comment faire pour savoir si c'est un nombre ou une chaine des lettres
Exemple
char petibuf[10];
la personne rentre normalement un nombre dans un edit
je le recupere dans mon petitbuf
mais la je voudrais savoir si c'est bien un nombre ou un chiffre qui est rentré dans le petibuf
(si c'est un nombre c'est bon si c'est des lettres ou un melange lettres chiffres c'est pas bon)

Un petit exemple bienvenu merci.
mercredi 21 juin 2006 à 09:59:45 | Re : Chiffre ou lettre ?

magic_Nono

Membre Club
perso, je le ferai avec ma lib BString,

fonction
checkIsNbr

appel pour ton cas

BString plomp(petibuf);
bool ok=plomp.checkIsNbr(true,false,true);





corps de la fonction

bool BString::checkIsNbr(const bool uniquenmentDecimal,const bool nombreAvecSuffixeC,const bool bNegatifOk)const
{
/// --------------------------------------------------------------------------------------------------------------------------------------------------
/// ---------------- BString::checkIsNbr(const bool uniquenmentDecimal ,const bool nombreAvecSuffixeC ,const bool bNegatifOk) -> bool ----------------
/// --------------------------------------------------------------------------------------------------------------------------------------------------
/// -----  Objectif    : indique si une chaîne est un nombre (quelque soit son format)
/// -----  Auteur(s)    : Magic Nono 23/09/03
/// -----  PreCond    : /
/// -----  PostCond    : /
/// -----  Etat        : 2        (-1<0<1<2)
/// -----  MaJ 11/10/03 : reco hexa
/// -----  MaJ 03/11/03 : reco octal
/// -----  MaJ 21/06/04 : reco optionnel nb avec suffixe éventuel(1 lettre : 'f' , 'l' ou 'U')
/// -----  MaJ 13/12/04 : reco optionnelle des négatifs
/// -----  MaJ 29/01/05 : corr BUG : 'e1' est une variable !! => un nb ne peut commencer par 'e'
/// -----  MaJ 05/04/05 : corr BUG : '.' doit etre unique... ou 2* max avec notation scientifique
/// -----  TODO    : binaire
/// -----  TODO    2 : scientifique avec négatif...
/// -----  TOCHECK    : "1..2" , "1.2.3"
/// --------------------------------------------------------------------------------------------------------------------------------------------------
/// -----  const bool uniquenmentDecimal(par défaut : 'true')    :  uniquement les décimaux tolérés?
/// -----  const bool nombreAvecSuffixeC(par défaut : 'false')    :  reco optionnel nb avec suffixe éventuel(1 lettre : 'f' , 'l' ou 'U')
///+                f: float, U: unsigned, l:long
/// -----  const bool bNegatifOk(par défaut : 'false')    : valider les nombres négatifs
/// --------------------------------------------------------------------------------------------------------------------------------------------------
/// -----  retour (bool)    : cf.obj
/// --------------------------------------------------------------------------------------------------------------------------------------------------
/// -----  Var Utilisées de la classe (2)    : m_iTaille, m_str
/// -----  Var Utilisées par adresse (1)    : m_str
/// -----  Var In  (5)    : bNegatifOk, m_iTaille, m_str, nombreAvecSuffixeC, uniquenmentDecimal
    size_t i;
    char c='²';
    bool ePresent=false;    // 'e' present : exposant...
    bool ptPresent=false;    // '.' present : virgule...
    //si pas hexa
    if(!(m_iTaille>2 && m_str[0]=='0'&&m_str[1]=='x'))
    {
        //si octal
        if(m_iTaille>=1 && m_str[0]=='O')
        {
            if(uniquenmentDecimal)
                return false;
            //si 'O' => faux
            if(m_iTaille==1)
                return false;
            /// algo : retourne nb bien octal (*)
            for(i=1;i<m_iTaille;i++)
            {
                c=m_str[i];
                if(c<'0'||c>'7')
                    return false;
            }
            return true;
        }
        /// algo : retourne bien un nombre (exp OK)        (*)
        i=0;
        if(bNegatifOk && 2<=m_iTaille && m_str[0]=='-')
            i++;
        for(;i<m_iTaille;i++)
        {
            c=m_str[i];
            if(c=='e' && !ePresent)
            {
                if(i==0)    //cas ou on commence par e nok
                    break;
                ePresent=true;
                ptPresent=false;
                continue;    //goto 'for'
            }
            //rq :     (!isdigit(c)) <=> (c<'0'||c>'9')
            if(c<'0'||c>'9')
                if(c=='.' && !ptPresent)
                    ptPresent=true;
                else
                    return(nombreAvecSuffixeC && i==m_iTaille-1 && m_iTaille>1 && (c=='U' || c=='f' || c=='l' ));
        }
        return(c!='e');    // normalement true, & on ne commence pas ni ne finit avec un 'e' !!!
    }
    else
    {
        if(uniquenmentDecimal)
            return false;
        /// algo : {hexa}
        /// algo : retourne bien un nombre Hexa    (*)
        for(i=2;i<m_iTaille;i++)
        {
            c=m_str[i];
            if((c<'0'||c>'9') && (c<'A'||c>'F') && (c<'a'||c>'f'))
                return false;
        }
        return true;
    }
}


___________________________________________________________
Magicalement
Nono
mercredi 21 juin 2006 à 10:05:53 | Re : Chiffre ou lettre ?

ralebole

Non je veut faire simple mon prog est déja bien gros alors rajouté une lib la dedans pas possible.
mercredi 21 juin 2006 à 10:20:23 | Re : Chiffre ou lettre ?

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
sous classe ton edit pour empecher le coller, tu mets le style ES_NUMBER et ainsi jamais à se poser la question car ne pourra y avoir ques des chiffres.

ciao...
BruNews, MVP VC++
mercredi 21 juin 2006 à 10:32:39 | Re : Chiffre ou lettre ?

ralebole

Ok merci en un mot mon probleme est resolu.
mercredi 21 juin 2006 à 12:17:16 | Re : Chiffre ou lettre ?

magic_Nono

Membre Club
mdr, y avait pas de lib à rajouter, juste cette fonction à adapter

remarque brunews,
de mémoire les virgules et les notations scientifiques ne sont pas acceptées avec ce style.

___________________________________________________________
Magicalement
Nono


Cette discussion est classée dans : nombre, chiffre, lettres, lettre, petibuf


Répondre à ce message

Sujets en rapport avec ce message

convertir les nombres en lettres [ par djamine ] salut les amisje cherche un code pour convertir les nombres (1 2 3 .....) en lettres ( un, deux , trois....)l'utilisateur donne le nombre et le progra traiter les lettres dans une chaine? [ par zer0man ] Bonjour tlm, jai une petite question en avec visual c. Dans mon programme, l'utilisateur doit entrer 2 lettres séparé par un espace. Ex:"Entrez 2 lett Generer un nombre aleatoir en C [ par Snoupy ] Salut à tous, j'ai besoin de générer plusieur nombre aleatoir, mais la source que j'utilise, m'oblige à attendre une seconde entre chaque nombre, car Sélectionner un chiffre dans un nombre ? [ par Telepathmaster ] Bonjour, j'aimerai savoir si il est possible de décomposer un nombre comme 21365489 de façon à pouvoir  avoir le premier chiffre de ce nombre ou le de des chiffres et des lettres [ par eryk17 ] qui pourrait me dire coment faire pour ecrire un programme qui fasse la conversion en lettre lorsqu'on appuie sur un chiffre en tre 0 et 999 milliard. des chiffres et des lettres [ par eryk17 ] qui pourrait me dire coment faire pour ecrire un programme qui fasse la conversion en lettre lorsqu'on appuie sur un chiffre en tre 0 et 999 milliard. des chiffres et des lettres [ par eryk17 ] qui sait comment faire un rpogramme pour quen appuyant sur un chiffre entre et 0 et 999 milliards le programme nous le transcrit en lettre.apr exempl Strcat avec un chiffre entier [ par Athanor ] Je voudrais concaténer une chaine avec un nombre entier, je sais bien questrcat(nomchaine, 123);ne marche pas, mais même en transformant mon chiffre e compteur de lettre [ par cobra176 ] Bonjour je sais qui exister sur ce site un programme qui compte le nombre de lettre de symbole en C mais voila 2 heures que je le recherche . quelqu' fonction qui permet de convertir un chiffre en lettre [ par hajarussa ] salut , Je voudrais realiser une fonction qui permet de realiser la conversion d'un chiffre en lettres , s'ils vous plait si vous pouvez m'aider n'hes


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales