Exercices sur les chaines de caractères
Fermé
Aureche
Messages postés
2
Date d'inscription
mercredi 17 mars 2021
Statut
Membre
Dernière intervention
18 mars 2021
-
Modifié le 17 mars 2021 à 09:07
Aureche Messages postés 2 Date d'inscription mercredi 17 mars 2021 Statut Membre Dernière intervention 18 mars 2021 - 18 mars 2021 à 12:01
Aureche Messages postés 2 Date d'inscription mercredi 17 mars 2021 Statut Membre Dernière intervention 18 mars 2021 - 18 mars 2021 à 12:01
A voir également:
- Exercices sur les chaines de caractères
- Caractères ascii - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères spéciaux clavier azerty - Guide
- Caractères spéciaux - Guide
- Exemple de mot de passe à 8 caractères - Guide
2 réponses
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
17 mars 2021 à 08:44
17 mars 2021 à 08:44
Bonjour,
Attention, pour poster du code il faut utiliser les balises (le bouton [<>]) sinon il devient difficile à lire.
D'autre part, si tu indiquais ce que tu obtiens ça serait plus facile pour nous (une erreur de compilation, un plantage à l'exécution, un mauvais résultat dans certains cas, ...)
Ton algorithme est plutôt pas mal, tu gères tout dans un unique buffer et arrives à gérer presque tout de manière unique y compris les cas où une lettre est là une seule ou plusieurs fois.
Si je prends tes 4 dernières lignes:
Pour comprendre le problème il te faut faut faire un dessin et applique la procédure à la main. Tu verras qu'avoir 2 pointeurs pnom et pnom2 n'est pas suffisant. Il te faut :
-
-
-
Et n'oublie pas de mettre un terminateur de chaîne à ton résultat.
Attention, pour poster du code il faut utiliser les balises (le bouton [<>]) sinon il devient difficile à lire.
D'autre part, si tu indiquais ce que tu obtiens ça serait plus facile pour nous (une erreur de compilation, un plantage à l'exécution, un mauvais résultat dans certains cas, ...)
Ton algorithme est plutôt pas mal, tu gères tout dans un unique buffer et arrives à gérer presque tout de manière unique y compris les cas où une lettre est là une seule ou plusieurs fois.
Si je prends tes 4 dernières lignes:
*pnom=a+c;pas mal l'astuce, ça gère les 2 cas.
pnom2++;pas mal aussi ce replacement.
pnom+c;Vois-tu pourquoi cette ligne n'a aucun sens?
pnom++;Là ça n'est pas aussi simple.
Pour comprendre le problème il te faut faut faire un dessin et applique la procédure à la main. Tu verras qu'avoir 2 pointeurs pnom et pnom2 n'est pas suffisant. Il te faut :
-
pnom_lit: le pointeur qui lit la chaîne
-
pnom_lit2: le pointeur juste après qui recherche les caractères en double.
-
pnom_ecrit: le pointeur qui écrit le résultat. au début il est égal à
pnom_litmais il avance moins vite que
pnom_lit.
Et n'oublie pas de mettre un terminateur de chaîne à ton résultat.
Aureche
Messages postés
2
Date d'inscription
mercredi 17 mars 2021
Statut
Membre
Dernière intervention
18 mars 2021
18 mars 2021 à 12:01
18 mars 2021 à 12:01
Pardonnez moi, je ferai attention la prochaine fois.
Merci de votre aide, j'ai compris ou était mon erreur grâce à vous :)
Merci de votre aide, j'ai compris ou était mon erreur grâce à vous :)