Bonjour à tous,
Je souhaite coder une fonction en PHP qui retourne faux s'il y a un problème de parenthésage dans une équation mathématique passée en paramètre en string, et vrai sinon.
Voici mon code:
Problème: ma fonction s'arrête systématiquement sur le premier caractère de la chaine (donc un seul tour de boucle dans la "for"). Je pense que ma fonction bute sur les caractères spéciaux. Comment contourner ça?
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 function verif ($expr) { $closing_brackets=0; $opening_brackets=0; for($i=0; $i<sizeof($expr); $i++) { if (strcmp('(',$expr[$i])) { $opening_brackets++; } if (strcmp(')',$expr[$i])) { $closing_brackets++; } } if ($opening_brackets!=$closing_brackets) { return 0; } return 1; } $f = '3*4+(5-2)*(5+5'; $t = '4*(5+(8-(10-5)))'; echo '<br/>L\'equation '.$t.' est '.verif($t).'<br/>'; echo 'L\'equation '.$f.' est '.verif($f);
Merci d'avance.
Partager