Chaine de caractères

Résolu
REMqb Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 17 mai 2009 - 22 févr. 2007 à 13:07
REMqb Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 17 mai 2009 - 23 févr. 2007 à 08:04
Commen faire pour qu'une chaine de caractère ait successivement ces valeures

'a' puis 'b' puis 'c' ... puis 'aaaa' puis 'aaab' puis 'aaac' jusqu'a ce que la chaine ait une longueur de 10 caractères ?

7 réponses

AkeluX Messages postés 113 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 9 mars 2007 2
22 févr. 2007 à 21:07
Ben voilà ... Tu passes une chaîne à la fonction getNext et elle te retourne la suivante selon ta logique ... Tu n'as plus qu'à faire une boucle ..
<hr />
<?php
function getNext($now)
{
    if(substr($now, -1) == 'z' && strlen($now) > 1)
    {
        return getNext(substr($now, 0, -1)) . 'a';
    }
    else if(substr($now, -1) == 'z')
    {
        return 'aa';
    }
    else
    {
        return substr($now, 0, -1) . chr(ord(substr($now, -1))+1);
    }
}



$str = 'a';
for($i = 0; $i < 3000; $i++)
{
    echo $str . "
";
    $str = getNext($str);
}
?>
<hr />
C'est mon prof d'algo qui va être content ^^

Y a peut-être plus simple mais j'ai pas envie de chercher ...

AkeluX
3
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
22 févr. 2007 à 13:26
Euh.. c'est un ensemble de boucle et de conditionnelle..

Si ta derniere lettre donc substr(mot,-1) != 'z' alors cette dernière
lettre 's'incrémente' sinon ton mot est concaténé avec un 'a'.. et cela
avec un while (strlen(mot) < 10).

Tu vois le truc ??

S.
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
22 févr. 2007 à 13:28
oups.. j'avais po tout compris.. si toutes les lettres sont égales à z alors le mot est égal à 'a' x la longueur du mot + 1..

autant pour moi..

S.
0
REMqb Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 17 mai 2009
22 févr. 2007 à 13:37
la variable devrai prendre ces valeurs :

a,b,c,d,e,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z puis
aa,ab,ac,ad,ae,af,ag,ah,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az puis
ba,bb,bc,bd,be,bf,bg,bh,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz

et ainsi de suite.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
22 févr. 2007 à 14:03
Donc je ne dois po être très loin de la vérité non ??
0
REMqb Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 17 mai 2009
22 févr. 2007 à 18:26
Je ne sais pas mais j'aimerais bien avoir une 'source'.
0
REMqb Messages postés 23 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 17 mai 2009
23 févr. 2007 à 08:04
Merci ca fonctionne !!!
0
Rejoignez-nous