Comment inverser une chaine de caractères en 5 lignes.

Soyez le premier à donner votre avis sur cette source.

Snippet vu 18 714 fois - Téléchargée 34 fois

Contenu du snippet

Vous cherchez à inverser une chaine de caractères rapidement et en 5 lignes (+2 pour la déclaration de la fonction).

Je sais, c'est une fonction assez basique, mais ce que j'aime avec VB.NET, c'est que l'on peut faire de la notation façon C++. Regardez ci-dessous pour voir.

En gros, je prépare différentes sources pour faire une suite de fonction pour crypter vos messages MSN, ICQ, etc... ou aussi vos mails. ;)
Cette fonction est la première d'une grande série. Enfin, j'espère :p

Source / Exemple :


Public Function InverseStr(ByVal Chaine As String)
        'Nombre de caractère de la chaine et position du pointeur dans celle-ci
        Dim NbCar As Integer = Len(Chaine)
        'La boucle d'inversion
        While NbCar > 0 'Tant que le pointeur est > à 0
            'Caractère corespondant à la position du pointeur et transfert dans
            'la chaine de retour qui est la fonction elle-même.
            InverseStr += Mid(Chaine, NbCar, 1) 'Replacement des caractères
            NbCar -= 1 'Décrémentation façon C++
        End While
    End Function

Conclusion :


Vous avez juste à faire appel à la fonction "InverseStr" et en retour de cette fonction, vous aurez votre chaine inversée.

Par exemple : ChaineInversee = InverseStr("1234567890")
InverseStr retourne "0987654321" donc,
ChaineInversee = "0987654321"

Bon OK, l'exemple est de trop ;) Mais je préfère mettre des exemples. C'est plus parlant.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1247
Date d'inscription
mardi 7 mai 2002
Statut
Membre
Dernière intervention
18 février 2019
3
D'accord avec DarkVader !!!
Text1 = StrReverse(Text1)

c'est si simple lol
Messages postés
51
Date d'inscription
samedi 21 octobre 2000
Statut
Membre
Dernière intervention
10 octobre 2011

3 lignes c'est mieux qu'en 5/7
ou comment se fendre le c.. pour dire des aneries -
je vois mal ce que ça apporte à un débutant
sinon lui apprendre à faire n'importe quoi. %(

StrReverse(machaine) ne vous convient pas ?
Trop simple, trop rapide - A moins que ce soit
parce que c'est déjà tout fait !

1, parce que 0 n'est pas possible.
Messages postés
9
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
19 avril 2004

Si tu veux tu peux aussi utiliser la récursive (plus court encore)
if len(chaine)<>0 then
InverseStr = Right(Chaine,1) + InverseStr(Left(Chaine),Len(Chaine)-1)
end if

Ca fait 3 Lignes et tu ne déclare rien
Messages postés
30
Date d'inscription
dimanche 20 juillet 2003
Statut
Membre
Dernière intervention
26 janvier 2019

Ouais je sais ;) Mais par principe, j'évite d'utiliser des boucles FOR.
Merci pour la p'tite source ;)
Messages postés
171
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
20 juillet 2008

Dim NbCar As Integer
for nbcar = len(chaine) to 1 step -1> 0 dans
InverseStr += Mid(Chaine, NbCar, 1)
next
Quand le nombre d'itération peut etre connu et qu'il faut accomplir toutes les itérations, la boucle de type FOR généralement s'applique.

C'est effectivement très basic comme code...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.