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 :

Sur le code ASCII en langage C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 105
    Par défaut Sur le code ASCII en langage C
    Dans l'intention de classer des caractères par ordre alphabétique j'utilise leur code ASCII.
    Maintenant Dans l'intention de classer des mots (chaines de caractères) par ordre alphabétique,
    comment obtenir la valeur numérique correspondant à ma chaîne.
    merci d'avance!

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 450
    Par défaut
    Bonjour et bienvenue,

    Il faut utiliser strcmp() (String Compare), qui sert à cela.

    Sinon, si tu veux écrire cette fonction toi-même, il suffit de comparer deux à deux les caractères respectifs de tes chaînes, en commençant par le premier de chacune d'elle. S'ils sont différent, la comparaison s'arrête là, avec le résultat. S'ils sont égaux, tu passes aux suivants et tu refais le même test, jusqu'à la fin si nécessaire.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 814
    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 814
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Toogda Voir le message
    comment obtenir la valeur numérique correspondant à ma chaîne.
    Bonjour

    Je ne suis pas certain de bien comprendre la phrase "valeur numérique correspondant à une chaine". Quelle est par exemple pour toi la valeur numérique de "toto" ???

    Si maintenant tu parles de la valeur numérique de chaque caractère de la chaine alors ça devient plus clair. En C tout est nombre. Donc si ta chaine contient (par exemple) "Bonjour" elle contient en réalité {66, 111, 110, 106, 111, 117, 114, 0}.
    Si tu affiches un caractère via printf(), l'afficher avec "%c" te donnera le caractère ascii, l'afficher avec "%d" te donnera sa valeur numérique en décimal, avec "%o" tu auras sa valeur en octal et avec "%x" tu auras sa valeur en hexadécimal.

    De là, comparer deux chaines devient trivial puisqu'il te suffit d'utiliser les opérateurs mathématiques usuels sur chaque caractère des deux chaines pris deux à deux. C'est d'ailleurs tellement trivial que comme l'a dit Obsidian, la librairie standard te propose la fonction toute faite strmp() qui fait exactement ce travail...
    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 confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 105
    Par défaut Ok merci . j'utilise la strcmp() mais ya quelque chose qui m'échape et voulè un éclaisissement!
    utilisant le principe du tri selection
    voisi mon code pourclasser par ordre alphabétique

    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
    16
    17
    18
    19
    20
    21
     
    //Adherent adh[] est une variable de type structure contenant un char adh_Nom[50]
    //echanger(adh,i,mini) sert a permiter adh[i] et adh[mini] 
     
    void classer_a_z(Adherent adh[], int nbt)
    {
     
        int j, i, mini;
        char tmpNom[50];
     
        for(i=0; i<nbt; i++)
        {
            mini=i;
            for(j=i+1; j<nbt; j++)
            {
                 if(strcmp(adh[mini].adh_Nom ,adh[j].adh_Nom) == 1)
                    j=mini;
                 echanger(adh,i,mini);
            }
        }
    }
    cela compile sans signaler d'errur mais ma liste reste déclasser!
    merci d'avance de m'éclaircir sur ce qui va pa!

  5. #5
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 753
    Par défaut
    Pourtant tu as 1 erreur + 1 merdouille , je te redonne le pseudo code

    Et à quoi sert ta variable tmpNom ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      procédure tri_selection(tableau t, entier n)
          pour i de 1 à n - 1
              min <- i
              pour j de i + 1 à n
                  si t[j] < t[min], alors min <- j
              fin pour
              si min != i, alors échanger t[i] et t[min]
          fin pour
      fin procédure
    Lorsque tu as trouvé une valeur minimale tu la sauvegarde min <- j.
    Et ensuite tu fais un test si tu dois échanger ou pas si min != i, alors.

  6. #6
    Membre Expert

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Par défaut
    Accessoirement, relis attentivement la page du manuel de "strcmp", parce que "strcmp == 1" c'est faux !

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 105
    Par défaut A super , xa marche bien mintana!
    merci

  8. #8
    Membre Expert

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Par défaut
    Tant mieux !
    Et si tu partageais ton code corrigé ? Ca pourrait rendre service à quelqu'un d'autre, dans le futur...

Discussions similaires

  1. [Débutant] probleme afficher code ascii sur l'editeur de borland 5.02
    Par cesar333 dans le forum C++Builder
    Réponses: 1
    Dernier message: 09/09/2010, 14h47
  2. Affichage du code ascii sur 8 bits
    Par baguinga dans le forum Débuter
    Réponses: 3
    Dernier message: 18/10/2007, 19h01
  3. Code ASCII du symbole Euro
    Par FW-S dans le forum Delphi
    Réponses: 9
    Dernier message: 03/04/2007, 01h27
  4. [Hardware portable] Comment entrer un code Ascii?
    Par l.sage dans le forum Ordinateurs
    Réponses: 13
    Dernier message: 11/08/2005, 13h04
  5. [langage] code ascii en Perl
    Par intox18 dans le forum Langage
    Réponses: 3
    Dernier message: 18/01/2005, 09h35

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