Bonjour,
J'ai un petit programme qui prend un verbe du premier groupe à l'infinitif et qui le conjugue. Le hic est que le verbe conjugué contient un ou plusieurs caractère aléatoire(s).
Voici le code :
Le principe est de récupérer l’infinitif du verbe, d'en retire le "er" final pour obtenir la racine que j'intègre dans le format des printf en fonction du pronom.
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
22
23
24
25
26
27
28
29
30 #include <stdio.h> #include <string.h> int main(int argc, char const *argv[]) { char verbe[50]; char * v = verbe; char racine[50]; char * r = racine; int len, i; printf("Donnez un verbe du premier groupe : \n"); scanf("%s", &verbe); len = strlen(v)-2; printf("\nLen : %i\n", len); for (i=0; i<len; i++) { r[i]=v[i]; } r[i+1]='\0'; printf("\nRacine : %s\n", r); printf("Je %se\n", r); printf("Tu %ses\n", r); return 0; }
J'obtient d'étranges résultats :
Au premier essai, j'ai réduit la racine d'une lettre pour voir le comportement (dans la ligne "len=strlen..."). J'ai fait un retour arrière pour le second.{ c } » ./conj.exe /cygdrive/e/bin/scripts/c Donnez un verbe du premier groupe : donner Len : 3 Racine : don Je done Tu dones { c } » gcc conj.c -o conj.exe /cygdrive/e/bin/scripts/c { c } » ./conj.exe /cygdrive/e/bin/scripts/c Donnez un verbe du premier groupe : donner Len : 4 Racine : donnV▒▒w Je donnV▒▒we Tu donnV▒▒wes { c } »
Je compile avec GCC sous babun (une variante de cygwin sur Windows).
Merci a qui pourra m'éclairer sur l'origine de ces caractères.
Partager