<?php function conversion($chaine) { $chaine = strtoupper($chaine); //on met la chaine en majuscule pour ne pas créer d'erreur par la suite $result = 0; //on initialise la variable à retourner for ($i=0;$i<strlen($chaine);$i++) { //pour tous les caractères dans la chaine switch ($chaine[$i]) { //selon le caractère case "M": $result +=1000; break; case "D": $result +=500; break; case "C": $result +=100; break; case "L": $result +=50; break; case "X": $result +=10; break; case "V": $result +=5; break; case "I": if ($i !strlen($chaine)-1) { //si on n'est pas le dernier caractère> pour ne pas faire d'erreur avec $chaine[$i=1] if ($chaine[$i+1] == "X") { //si le prochain caractère est X on fait +9 $result +=9; $i++; break; } else if ($chaine[$i+1] == "V") { //si le prochain caractère est X on fait +4 $result +=4; $i++; break; } else { //sinon +1 $result +=1; break; } } else { //si dernier caractère, alors +1 $result +=1; break; } } } return $result; //on retourne le résultat } ?>/color
<?php $chaine = "abc zyx"; $liste="abcdefghijklmnopqrstuvwxyz"; for ($k = 0 ; $k < 25 ; $k++) { // boucle des 25 possibilités for( $i = 0 ; $i < strlen($chaine) ; $i++ ) { // tant qu'il y a des caractères dans la chaine if(strpos($liste, $chaine[$i]) !== false) { $j = strpos($liste,substr($chaine,$i,1)); // on recherche la position de la lettre dans la liste $j += 1; // on rajoute le décalage while($j+1 > strlen($liste)) { //si on sort de la liste (+26) $j -= strlen($liste); } $chaine[$i] = $liste[$j]; // création de la nouvelle chaine } } echo $chaine.' '; // affichage du résultat } ?>
bcd azy
cde baz
def cba
efg dcb
fgh edc
ghi fed
hij gfe
ijk hgf
jkl ihg
klm jih
lmn kji
mno lkj
nop mlk
opq nml
pqr onm
qrs pon
rst qpo
stu rqp
tuv srq
uvw tsr
vwx uts
wxy vut
xyz wvu
yza xwv
zab yxw
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?php function decyptCesar($chaine, $cle) { $chaine = strtolower($chaine); //afin que la liste soit en minuscule, et donc pas de problème pour trouver ton caractère dans la liste $liste="abcdefghijklmnopqrstuvwxyz"; //liste des caractères for( $i = 0 ; $i < strlen($chaine) ; $i++ ) { // tant qu'il y a des caractères dans la chaine if(strpos($liste, $chaine[$i]) !== false) { $j = strpos($liste,substr($chaine,$i,1)); // on recherche la position de la lettre dans la liste $j -= $cle; // on enlève le décalage while($j+1 > strlen($liste)) { //si on sort de la liste (+26) $j -= strlen($liste); } $chaine[$i] = $liste[$j]; // création de la nouvelle chaine } } return $chaine; // retour du résultat } ?>