Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Tableau de pointeurs et chaînes de caractères


Messages recommandés

Posté(e)

Bonjour ;

je suis encor debutant dans la programation et j'ai un petit souci je ne sais meme pas part ou commencer et j'aimerai que vous m'aider bref vous me donner quelques debouche : ecrit un programmes qui lit 10 mots du clavier (taile maximale :50 caracteres) et attribue leur adresse a un tableau de pointeurs mot efface les 10 mots uns a uns en suivant l'odre lexicographique et en liberant leur espace memoire

  • 2 semaines après...

Posté(e) (modifié)

Bonsoir,

Il pourrait être utile de préciser le langage (d'ici je dirais du C) et ce que tu as déjà mené comme reflexion.

Je pense qu'il y a une mauvaise manipulation lors de la retranscription de l'énonce.

 

Je pars du principe qu'un mot est une suite de caractère quelconques dont la fin est délimitée par un espace.

Suivant l'énnoncé complet, cela peut être inexacte (un mot est peut être une suite de caractères alphabétiques (a-zA-Z) dont la fin peut être délimité par un espace et/ou une tabulation et/ou un retour à la ligne et/ou une ponctuation.

 

Un mot fait 50 caractères maximum et il y a 10 mots à lire.

=> Il faut donc lire (sur l'entrée standard ou le fichier voulu) 10 * (50 + 1) caractères (soit 510 caractères).

=> Un tableau de taille fixe de 501 caractères est donc requis. (char buffer[510]icon_wink.gif (dont le dernier caractère peut directement être mis à '\0').

=> Il y a dix pointeurs à stocker, il faut donc un tableau de pointeur sur char de 10 entrée (char *ptr[10])

 

Ensuite, il faut faut:

=> Ajouter l'adresse du premier caractère du buffer à notre tableau de pointeur (char ptr[0] = &(buffer[0]) )

=> Réaliser une boucle qui parcoure chaque caractère (de buffer[1] à buffer[508])

=> Disposer d'un index (i) pour savoir ou on en est dans notre tableau de pointeur.

=> Dire "si mon caractère n'est pas un espace ET que le caractère suivant est un espace alors ajouter l'adresse du caractère suivant au tableau de pointeur à l'index i puis incrémenter l'index i. (et éventuellement remplacer le caractère actuel par un '\0')

=> Traiter le caractère suivant.

 

Tes informations sont trop imprécises concernant la suite de ton exercice

cdt,

Modifié par Polyol
Posté(e)

Bonsoir

 


=> Il faut donc lire (sur l'entrée standard ou le fichier voulu) 10 * (50 + 1) caractères (soit 501 caractères).

 

Pour moi, ce serait plutôt :

 

(10*50) + 1 =>> 501

10*(50+1) =>> 510

Posté(e) (modifié)

Bonsoir,

autant pour moi, le calcul est bon (10 mots, de 50 caractères max + un espace à chaque fois), c'est mon résultat qui était mauvais (donc bien 510 icon_razz.gif).

j'ai édité mon poste en conséquence, merci :)

Modifié par Polyol

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...