Aide programme
Fermé
Utilisateur anonyme
-
Modifié le 15 juin 2017 à 19:07
Dalfab Messages postés 703 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 1 mars 2023 - 15 juin 2017 à 22:30
Dalfab Messages postés 703 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 1 mars 2023 - 15 juin 2017 à 22:30
A voir également:
- Aide programme
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Frequence programme national ✓ - Forum Messagerie
- Programme demarrage windows 10 - Guide
- Programme bonjour ✓ - Forum Windows
- Programme démarrage windows 10 - 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
703
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 mars 2023
100
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
int prefix ( char * string1 , char * string2){ int size_string1 = strlen(string1); int size_string2 = strlen(string2); int i; int size_shorter; if ( size_string1 < size_string2){ size_shorter = size_string1; } else{ size_shorter = size_string2; } for ( i = 0 ; i < size_shorter-1 ; i++){ //size_string1-1 pour éviter le \0 if (string1[i] != string2[i]){ return -1; } } return 1; }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 :).