Position des lettres

Tango005 - 17 sept. 2021 à 09:05
ToutEnMasm Messages postés 590 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 18 septembre 2021 - 18 sept. 2021 à 19:25
Bonjour, je cherche comment je peux trouver la position d'une lettre dans une phrase.

Comme ceci :

Alexa

a | e | l | x
--------------------------
0 | 2 | 1 | 3
4

1 réponse

ToutEnMasm Messages postés 590 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 18 septembre 2021 3
Modifié le 17 sept. 2021 à 23:05
La symbolique du problème posé semble plutôt obscure,je vais néanmoins essayé de répondre.
une chaine: texte db 34,"a",67,"b",0
Il faut d'abord connaître l'adresse de la chaine.
mov ebx,offset texte ;ou lea (r)ebx ,texte
ensuite il faut comparer le contenu de l'adresse avec une lettre.
En ansi,une lettre a une dimension BYTE (8 bits)


mov ecx,0
@@:
.if byte ptr [ebx] != "a"
inc ebx
inc ecx
.if ecx < sizeof(texte) ;longueur de la chaine
jmp @B
.else
jmp pastrouve
.endif
.endif
;-------------- la lettre a été trouvée ,on passe par ici
----------- faire quelque chose -------------

pastrouve:
1
KX Messages postés 16602 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 3 octobre 2022 124
18 sept. 2021 à 17:13
Bonjour,

C'est plutôt incongru de proposer une solution en assembleur dans un forum Java...

En Java ce problème se résout avec la classe String et sa méthode indexOf :
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html#indexOf(java.lang.String)

Exemple :
"Alexa".indexOf("A") // → 0
"Alexa".indexOf("l") // → 1
"Alexa".indexOf("e") // → 2
"Alexa".indexOf("x") // → 3
"Alexa".indexOf("a") // → 4

"Alexa".indexOf("z") // → -1
0
ToutEnMasm Messages postés 590 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 18 septembre 2021 3 > KX Messages postés 16602 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 3 octobre 2022
18 sept. 2021 à 19:25
Pour le coté incongru ,ce message est dans plusieurs forums dont l'ASM.
Peut être que l'auteur pourrait nous éclairés sur le langage utilisé?.
0