Aide programme
Fermé
Utilisateur anonyme
-
Modifié le 15 juin 2017 à 19:07
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 15 juin 2017 à 22:30
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 15 juin 2017 à 22:30
A voir également:
- Aide programme
- Programme demarrage windows 10 - Guide
- Mettre en veille un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Désinstaller programme windows 10 - Guide
- Sms programmé - Guide
2 réponses
YCN-
Messages postés
116
Date d'inscription
mercredi 24 juin 2015
Statut
Membre
Dernière intervention
13 juillet 2017
12
15 juin 2017 à 14:04
15 juin 2017 à 14:04
C'est un peu catastrophique votre truc là. Tu obtiens quoi quand tu test?
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
15 juin 2017 à 22:30
15 juin 2017 à 22:30
Je suis intrigué par l'écart entre le niveau de l'énoncé, qui pose des questions apparemment simples mais bourrées de pièges (je dirais niveau ingénieur non débutant), et le code proposé.
Ton code prefix_word() débute avec une bonne intention en s'intéressant au cas d'un mot vide qui sera inclus si la chaîne est vide ou commence par une espace. Bonne réflexion, puis tout devient plus flou. Il y a à la fois de problèmes de syntaxe et des problèmes de réflexion sur l'algorithmie.
Je peux essayer d'écrire prefix_word() mais la lecture de cette fonction ne t'aidera pas, il faut plus chercher à apprendre le langage.
Ton code prefix_word() débute avec une bonne intention en s'intéressant au cas d'un mot vide qui sera inclus si la chaîne est vide ou commence par une espace. Bonne réflexion, puis tout devient plus flou. Il y a à la fois de problèmes de syntaxe et des problèmes de réflexion sur l'algorithmie.
Je peux essayer d'écrire prefix_word() mais la lecture de cette fonction ne t'aidera pas, il faut plus chercher à apprendre le langage.
bool prefix_word( const char *str , const char *word ) { size_t size_wrd = strlen( word ); if ( size_wrd > strlen( str ) ) return false; // mot est plus long, il ne peut pas être inclus size_t i; for ( i = 0 ; i < size_wrd ; ++i ) { if ( word[i] != str[i] ) return false; // au moins un caractère diffère // ici word est entièrement égal au début de string if ( str[i] == '\0' || str[i] == ' ' ) // str doit se terminer ici return true; // ou le prochain caractère de str doit être une espace return false; // c'est un préfixe, mais pas un mot qui préfixe }Les autres fonctions sont un peu plus compliquées.
Modifié le 15 juin 2017 à 14:37
Ma version n'est pas forcément parfaite mais elle me semble logique. Ensuite pour connaître le nombre de fois qu'une chaîne de caractère est présente dans une autre il faut parcourir la chaîne de caractère la plus longue et regarder à chaque itération la plus courte lui est prefix.
J'ai aussi fait la fonction find_word, quand vous l'aurais réessayer avec mes indications, je vous aiderais, ou je vous donnerais ma version :).