Salut tous,
L'idée est simple : mettre au point une fonction qui teste si les n premiers caractères de deux chaînes sont égales, renvoie 1 le cas échéant, 0 sinon.
A ma surprise, le résultat est invariablement 16384, et donc ? Voilà, si vous comprenez quelque chose, moi je sèche...Merci tous.
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
31
32 int egal_n_ch(int n, char ch1[], char ch2[]) { int rtn;//la valeur retournée int i=1;// compteur if(n>strlen(ch1) || n>strlen(ch2)) rtn=0; // cas où l'on dépasse les tailles des chaînes else { if(ch1[0]==ch2[0]) { while(ch1[i]==ch2[i] && i<=n) { i++; } if(i==n) rtn=1; // on a égalité des n premiers caractères ! } else rtn=0; } return rtn; } int main() { char ch1[]="achille"; char ch2[]="achillus"; printf("%d",egal_n_ch(4,ch1,ch2)); return 0; }
Partager