Vérification d'une chaine de caractère _ php [Résolu/Fermé]

Signaler
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
-
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
-
Bonjour,
je veux tester une chaine de caractère si elle est sous la forme suivante a^b où a et b sont des nombres. C'est-à-dire, un programme près de ça:

$ch=2^3;
function f($ch)
{
  if($ch == ???)
     echo "Forme acceptable !";
  else
     echo "Fome non acceptable !";
}


veuillez me dire comme résoudre ce problème et merci d'avance.

1 réponse

Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
664
salut
tu dois convertir chaque chiffre sous sa forme binaire (2 et 3) puis les comparer pour chaque decimale
quand c'est égal ca prend la valeur 0 (false) inégale la valeur 1 (true)
exemple

0101
0011
------
0110 ( false true true false)

donc rcherche la valeur binaire de 2 et 3 et compare les, le resultat obtenu sera ce que tu dois mettre après ==
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
2
tout d'abord, merci animistab; mais je n'ai pas bien compris votre code!! Je pense que tu n'as pas compris également mon but de ce script.
En bref, j'essaie de vérifier si $ch est sous forme d'un alphanumérique (ex: 5^4) pour exclure les cas comme c^3 et b^5, etc.
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
664
ok le truc c'est que $ch représente le resultat de comparaison des valeur binaire
donc tu devrais faire
$a = 2;
$b=3;
$ch=$a^$b;
après tu vérifie si $a et $b sont numériques
if ( is_numeric($a) && is_numeric($b) )

sinon recupérer la chaine $ch avec strval($ch) et comparer avec [0-9]*\^[0-9]*
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
2
c'est exactement ce que je cherchais. Merci bcp animostab