Chaine de caractères [Résolu]

Signaler
Messages postés
23
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
17 mai 2009
-
Messages postés
23
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
17 mai 2009
-
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

Messages postés
113
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
9 mars 2007

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
Messages postés
2380
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
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.
Messages postés
2380
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
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.
Messages postés
23
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
17 mai 2009

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.
Messages postés
2380
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
Donc je ne dois po être très loin de la vérité non ??
Messages postés
23
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
17 mai 2009

Je ne sais pas mais j'aimerais bien avoir une 'source'.
Messages postés
23
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
17 mai 2009

Merci ca fonctionne !!!