Exercice php

mmou -  
Autumn`Tears Messages postés 1247 Statut Membre -
Bonjour,

j'ai un probleme concernat laprogrammation de cet exercice:
le but de l'exercice est d'ecrire un script qui determine la frequence de chaque lettre dans une chaine quelqonque.
on utilise un tableau qui contient pour chaque lettre le nombre de fois ou elle a ete rencontreé.
A voir également:

1 réponse

Autumn`Tears Messages postés 1247 Statut Membre 145
 
Salut,

Commence par créer un tableau avec toutes tes lettres en clé, et 0 en valeur.
Après, tu peux retourner le caractère d'une chaîne avec une fonction PHP [substr($chaine, $debut, $fin) par exemple]. $debut serait la valeur d'un compteur initialisé à 0, et la fin vaudrait 1, pour ne retourner qu'un caractère...
0
mmou
 
voici le code que j'ai fait, mais ça n'a pas marché
<html>

<body>



<?php

$chaine="azertyuiaozertysdfg";

$alpha=array("a"=>0,"b"=>0,"c"=>0,"d"=>0,"e"=>0,"f"=>0,"g"=>0,"h"=>0,"i"=>0,"j"=>0,"k"=>0,"l"=>0,"m"=>0,"n"=>0,"o"=>0,"p"=>0,"q"=>0,"r"=>0,"s"=>0,"t"=>0,"u"=>0,"v"=>0,"w"=>0,"x"=>0,"y"=>0,"z"=>0);

foreach($chaine as $elem){

{
foreach($alpha as $key=> $elem1)

{

if($elem==$elem1)

{

$alpha[$key]=$alpha[$key]+1;
}
}}

return $alpha;
?>

</body>
</html>
0
Autumn`Tears Messages postés 1247 Statut Membre 145
 
Normal, foreach ne fonctionne que pour les tableaux et objets, pas une chaîne de caractères ;)
0
mmou
 
:)
comment faire alors, pouvez vous m'aider
0
Autumn`Tears Messages postés 1247 Statut Membre 145
 
Je te propose d'utiliser une boucle for avec :
- un compteur initialisé à $cpt = 0; le compteur doit être inférieur strictement à la longueur de ta chaîne (à l'aide de strlen($chaine) ) : $cpt < strlen($chaine);
- l'incrémentation du compteur (++) : $cpt++

Ensuite, tu as juste à incrémenter (ajouter +1 à) la valeur pour la lettre correspondante.
Pour trouver cette lettre, utilise substr($chaine, $cpt, 1) : ta chaîne, la position de départ (va donc augmenter de 1 à chaque fois), et la taille de la chaîne à retourner, ici 1 seul caractère.

J'espère que je suis assez explicite... :S
0
mmou
 
Merci
0