comment connaitre la valeur d'une position dans une chaine?

Petit nouveau ! | 5 Messages

16 oct. 2008, 19:43

bonjour.
Je me permets de vous poser ma question étant donner que je n'ai pas trouvé de réponse sur ce forum (mais avec quels mots chercher exactement ??)

voila:

j'aimerais savoir comment trouver la valeur d'un caractère situé à une position précise dans une chaine!
je sais comment trouver la position d'un caractère mais pas comment trouver la valeur d'une 'position'.

pour être précis voila un exemple: comment savoir que le 10eme caractère de 'je pose une question sur ce forum' est un 'Q', en omettant les blancs si possible.

je débute le php et ne suis pas encore bien compétent :oops: mais merci d'avance pour votre aide.

ViPHP
ViPHP | 4674 Messages

16 oct. 2008, 20:15

Hey :),

Pour commencer, on a tous débuter un jour, alors il n'y a pas de malaise hein :).
Pour continuer, il faut voir une chaîne de caractères comme un tableau de caractères. Un tableau a des indexes et des valeurs, où chaque index est la position du caractère et la valeur est le caractère en question. Donc si on fait :
$str = 'Hello World';
var_dump($str[6]);
on devrait voir :

Code : Tout sélectionner

string(1) "W"
Le tour est joué. Ton test devient alors :
if($str[10] == 'Q') …
Attention, q est différent de Q. Soit tu mets le résultat de $str[10] en minuscule et tu compares avec q ou tu utilises la fonction strcasecmp() de PHP. C'est une astuce, je ne sais pas si tu en auras besoin, à toi de juger selon ton idée du script.

Si tu ne veux pas compter les espaces, il faut tous les supprimer par exemple. Dans ce cas :
$str = str_replace(' ', '', $str);
 devrait suffir :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Petit nouveau ! | 5 Messages

17 oct. 2008, 19:08

merci bien pour l'accueil et la réponse!

grâce à tes explications j'ai pu me documenter et trouver quelques pistes supplémentaires pour ce que je voulais faire.

Encore un grand merci donc!

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]