IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Faire correspondre un nombre entier à une chaine de caractères


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2020
    Messages : 18
    Par défaut Faire correspondre un nombre entier à une chaine de caractères
    Bonjour, j'aimerais savoir si il est possible de faire correspondre un nombre entier à une chaine de caractères, prenons l'exemple d'un tableau d'entiers {1000, 2, 100, 20, 3} la fonction retournerait => "mille deux cent vingt trois" ou juste pour le nombre 1000 => "mille" enfin vous avez compris !
    j'avais l'idée de faire un tableau associatif mais cela n'existe pas réellement en C et l’élaboration de cela est beaucoup trop dur pour moi, après j'ai eu l'idée de faire un dictionnaire comme en python mais cela n’existe pas non plus en C J'aimerais connaître vos idées, peut être un tableau ou des macros je sais pas ! merci d'avance pour toutes aides !

  2. #2
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 736
    Par défaut
    Bonjour.

    Il s'agit simplement d'écrire le nombre en lettres. Il n'y a rien de standard dans le langage, peut-être il existe une bibliothèque qui le permet.

    C'est un très bon sujet d'exercice de débutant, qui a été évoqué à plusieurs reprises sur ce forum, comme ici ou .

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Modaak Voir le message
    prenons l'exemple d'un tableau d'entiers {1000, 2, 100, 20, 3} la fonction retournerait => "mille deux cent vingt trois"
    Hum, donc le couple "2, 100" donne "2 * 100" mais l'autre couple "20, 3" donne "20 + 3" ?

    Citation Envoyé par Modaak Voir le message
    j'avais l'idée de faire un tableau associatif mais cela n'existe pas réellement en C et l’élaboration de cela est beaucoup trop dur pour moi, après j'ai eu l'idée de faire un dictionnaire comme en python mais cela n’existe pas non plus en C
    Et pourquoi alors ne pas le faire en Python ?

    Citation Envoyé par Modaak Voir le message
    Citation Envoyé par Daïmanu Voir le message
    C'est un très bon sujet d'exercice de débutant, qui a été évoqué à plusieurs reprises sur ce forum, comme ici ou .
    Ou bien plus récemment ici... Ah ben justement il se trouve que le topic était de toi. Ca te plait d'ouvrir plusieurs topics pour la même question ?
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2020
    Messages : 18
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Hum, donc le couple "2, 100" donne "2 * 100" mais l'autre couple "20, 3" donne "20 + 3" ?


    Et pourquoi alors ne pas le faire en Python ?


    Ou bien plus récemment ici... Ah ben justement il se trouve que le topic était de toi. Ca te plait d'ouvrir plusieurs topics pour la même question ?
    Mon idée était toute simple ! En faite je voulais juste parcourir un tableau d'entiers et en ressortir une chaine de caractère avec une concaténation avec strcat() par exemple après au niveau de la langue française je me débrouille ! Et je n'ai tout simplement pas le droit de le faire en python

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Citation Envoyé par Modaak Voir le message
    Bonjour, j'aimerais savoir si il est possible de faire correspondre un nombre entier à une chaine de caractères, prenons l'exemple d'un tableau d'entiers {1000, 2, 100, 20, 3} la fonction retournerait => "mille deux cent vingt trois" ou juste pour le nombre 1000 => "mille" enfin vous avez compris !
    Bien sur que c'est possible. On peut tout à fait écrire un logiciel qui convertit 2106280 en "Deux millions cent six mille deux cent quatre-vingts" et qui peut aussi faire la conversion inverse. Il suffit d'un peu se retrousser les manches.
    Citation Envoyé par Modaak Voir le message
    j'avais l'idée de faire un tableau associatif mais cela n'existe pas réellement en C et l’élaboration de cela est beaucoup trop dur pour moi, après j'ai eu l'idée de faire un dictionnaire comme en python mais cela n’existe pas non plus en C J'aimerais connaître vos idées, peut être un tableau ou des macros je sais pas ! merci d'avance pour toutes aides !
    En C, on a que les tableaux et les structures, et avec les tableaux on peut tout faire. Par exemple des tableaux associatifs, par exemple des dictionnaires. Quant aux macros, c'est un outil pour aider à la production du code. Ça peut être utilisé mais n'est jamais indispensable, et en effet dans ce type de code ça peut être une aide intéressante.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2020
    Messages : 18
    Par défaut
    Citation Envoyé par dalfab Voir le message
    Bien sur que c'est possible. On peut tout à fait écrire un logiciel qui convertit 2106280 en "Deux millions cent six mille deux cent quatre-vingts" et qui peut aussi faire la conversion inverse. Il suffit d'un peu se retrousser les manches.En C, on a que les tableaux et les structures, et avec les tableaux on peut tout faire. Par exemple des tableaux associatifs, par exemple des dictionnaires. Quant aux macros, c'est un outil pour aider à la production du code. Ça peut être utilisé mais n'est jamais indispensable, et en effet dans ce type de code ça peut être une aide intéressante.
    Alors comment fait on un tableau associatif ou meme un dictionnaire en C ?

  7. #7
    Membre émérite
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juillet 2020
    Messages : 352
    Par défaut
    Bonjour,
    la première étape avant même de penser à le faire en C ou en python ou en #trucmuch++ voire en brainfuck … c'est de simplement de pouvoir le faire en français. C'est toujours utile de commencer par une explication en français dans le texte. Ici ça pourrait commencer par quelque chose du genre :
    Pour écrire un nombre donné par son écriture décimale en toute lettre en français je vais commencer par chercher les règles d'écriture. Juste histoire de m'assurer de pouvoir le faire à la main déjà …
    puis un peu plus tard
    Comme il semble y avoir différentes conventions dans le monde de la francophonie, je vais dans un premier temps me limiter à la norme utilisée en France avec les recommandations d'orthographe de 1990 parce que ça a l'air le plus simple
    après on commence à mettre les mains dans le cambouis

    Quand un nombre a beaucoup de chiffre on commence par les regrouper par 3 en commençant à droite car chaque groupe sera écrit comme un nombre compris entre 1 et 999. Chaque groupe sauf celui de plus faible poids sera suivi d'un qualificatif (genre mille, million, milliard, etc.).
    Une fois que tout cela est un peu plus clair, on continue par écrire l'algorithme (ouaips, seulement maintenant … et encore pas avec un langage précis en tête)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    algo en_toute_lettre N: nombre → Chaîne de caractère
    Début
        si N = 0 alors
            écrire "zéro"
        sinon 
            décomposition = décomposer N, 3
            ......
    Fin
    
    algo décomposer N: nombre, Taille_Groupe: nombre → tableau d'enregistrements ( groupe: Nombre, magnitude: Nombre )
        // décompose le nombre N en un tableau d'enregistrements, chaque enregistrement contient le groupe de Taille_Groupe chiffres et la mgnitude qui est le rang du groupe
       ...
    
    .......
    Une fois que tu as fait ça c'est relativement simple d'implémenter une solution, en C ou en python ou en ....

Discussions similaires

  1. [CR XI] extraire un nombre dans une chaine de caractère
    Par kikidrome dans le forum Formules
    Réponses: 4
    Dernier message: 01/10/2009, 13h39
  2. retourner un nombre pour une chaine de caractère
    Par cotede2 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/06/2008, 13h26
  3. Trouver un nombre dans une chaine de caractère ?
    Par Coussati dans le forum Débuter
    Réponses: 4
    Dernier message: 27/10/2007, 00h35
  4. [MySQL] extraire des nombre d'une chaine de caractères et addition
    Par Yotho dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/03/2006, 16h54
  5. Récuperer un nombre dans une chaine de caractère
    Par ColonelHati dans le forum C
    Réponses: 4
    Dernier message: 27/04/2005, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo