next up previous
Next: Entrées / Sorties Up: Initiation au Langage Fortran Previous: Opérateurs et fonctions mathématiques

Sous-sections

Manipulation de textes

Les textes sont stockés dans des chaînes de caractères. Dans ce chapitre, nous donnons quelques moyens de les manipuler.

Constantes chaînes

Elles sont constituées par une série de caractères encadrés par des apostrophes (ou « simple quotes » en anglais). Exemples :

'Ceci est une chaîne'
'/home/louisnar'
'L''apostrophe doit être doublé'

Variables chaînes

Syntaxe de déclaration :

character*n var

n représente la longueur de la chaîne. Cette déclaration réserve n octets en mémoire pour y stocker n caractères.

Exemples :

      character*15 nom
      character*100 nomfichier

On peut ensuite affecter ces variables avec l'opérateur = comme pour toute autre variable :

      nomfichier='/usr/local/public/louisnar/th.mai'
      nom='Louisnard'

Comme la chaîne 'Louisnard' ne contient que 9 caractères, les 6 derniers caractères de nom sont affectés avec le caractère blanc. Si on affecte une variable chaîne de 15 caractères avec une chaîne de 16 caractères, il y aura une erreur d'exécution.

Fonctions sur les chaînes

Longueur d'une chaîne

LEN(chaine) renvoie la longueur en mémoire de chaîne.

Attention : avec l'exemple précédent, len(nom) renvoie 15 (et pas 9 !) puisque la variable nom a été définie comme une chaîne de 15 caractères.

Recherche dans une chaîne

INDEX(chaine1, chaine2) renvoie la position de la chaine chaine2 dans la chaine chaine1.

Par exemple (toujours à partir de l'exemple précédent), index(nom,'nar') renvoie 6.

Sous-chaînes

chaine(m:n) est la sous-chaîne allant du mième ou nième caractère de chaine. m et n peuvent être des constantes ou des variables entières.

Concaténation

La concaténation permet de coller deux chaînes bout à bout. En FORTRAN, cet opérateur se note //.

Par exemple :

'Bon'//'jour'

représente la chaîne suivante :

'Bonjour'

Attention (toujours avec l'exemple précédent) :

nom //'est mon nom'

représente la chaîne suivante :

'Louisnard $\sqcup \sqcup \sqcup \sqcup \sqcup \sqcup $ est $\sqcup$ mon $\sqcup$ nom'


next up previous
Next: Entrées / Sorties Up: Initiation au Langage Fortran Previous: Opérateurs et fonctions mathématiques

Copyright © EMAC - 1996-1999 - Paul GABORIT