Fonctions de manipulation des chaines

new art 13


Les comparaisons de chaînes de caractères sont basées sur le code ASCII (quelles que soient les variantes du type de leurs arguments).



Longueur


len (string)

longueur de chaîne catégorie: A arguments: c résultat: i

Renvoie un entier standard correspondant à la longueur de la chaîne string. Si string est un tableau de chaînes, on obtient la longueur d'un élément d'un tel tableau.


Exemples:

len("string nr 1") vaut 11



Comparaison des chaines

Si les deux arguments sont des longueurs différentes, le plus court est virtuellement allongé à droite par des espaces. La comparaison s'effectue caractère par caractère à partir du premier pour des caractères de même position dans les deux chaînes.


lge (string_a, string_b)

chaîne supérieure ou égale catégorie: D arguments: c,c résultat: l

Renvoie la valeur vrai si la chaîne string_a apparaît après string_b ou lui est égale (string_a >= string_b) ou la valeur faux dans le cas contraire.


lgt (string_a, string_b)

chaîne supérieure catégorie: D arguments: c,c résultat: l

Renvoie la valeur vrai si la chaîne string_a apparaît après string_b (string_a > string_b) ou la valeur faux dans le cas contraire.


lle (string_a, string_b)

chaîne inférieure ou égale catégorie: D arguments: c,c résultat: l

Renvoie la valeur vrai si la chaîne string_a apparaît avant string_b ou lui est égale (string_a <= string_b) ou la valeur faux dans le cas contraire.


llt (string_a, string_b)

chaîne inférieure catégorie: D arguments: c,c résultat: l

Renvoie la valeur vrai si la chaîne string_a apparaît avant string_b (string_a < string_b) ou la valeur faux dans le cas contraire.


Exemples:

lle("do","dot") vaut .true. ! car en réalité "do " est comparé à "dot",
! et l'espace est toujours inférieur à un caractère

lgt("do","dot") vaut .false.
llt("do","do") vaut .false.
lge("do","do") vaut .true.



Recherche d'une configuration dans une chaine


index (string, substring [, back])

sous-chaîne dans une chaîne catégorie: D arguments: c,c[,l] résultat: i

Renvoie un entier standard correspondant à la position de la première occurrence de la sous-chaîne substring dans la chaîne string (ou la valeur 0 si cette sous-chaîne n'apparaît pas). Si l'argument back (de type logical) est absent ou s'il a la valeur faux, l'exploration se fait depuis le début de la chaîne string. Si back est présent avec la valeur vrai, cette recherche s'effectue à rebours (on peut avoir alors la position de la dernière occurrence de la sous-chaîne). Si substring est la chaîne vide, la fonction renvoie len(string)+1 si back est présent et vaut vrai, et 1 sinon.


Exemples:

index("abracadabra","ra") vaut 3
index("abracadabra","ra",back=.true.) vaut 10



Cadrage


adjustl (string)

cadrage à gauche catégorie: D arguments: c résultat: c

Renvoie la chaîne string cadrée à gauche, (débarrassée de tous ses espaces de début, et complétée à droite par autant d'espaces supplémentaires).


adjustr (string)

cadrage à droite catégorie: D arguments: c résultat: c

Renvoie la chaîne la chaîne string cadrée à droite (débarrassée de tous ses espaces de fin, et complétée à gauche par autant d'espace supplémentaires).


len_trim (string)

longueur d'une chaîne sans espaces de fin catégorie: D arguments: c résultat: i

Renvoie un entier standard égal à la longueur de la chaîne string, débarrassée de ses espaces de fin (0 si string est vide ou ne contient que des espaces).


trim (string)

chaîne sans espaces de fin catégorie: D arguments: c résultat: c

Renvoie une chaîne de longueur len_trim (string) égale à la chaîne string sans ses espaces de fin.


Exemples:

adjustl(" hello") vaut "hello "
adjustr("Bye ") vaut " Bye"

len_trim("Bye ") vaut 3
trim("Bye ") vaut "Bye"



Tests d'appartenance


scan (string, set [, back])

test d'appartenance catégorie: D arguments: c,c[,l] résultat: i

Renvoie un entier standard correspondant au premier caractère de la chaîne string appartenant à l'alphabet set (appartenant à un des caractères de la chaîne set). La fonction fournit la valeur 0 si aucun caractère de string n'appartient pas à set ou si l'une de deux chaînes est vide. Si back (de type logical) n'est pas précisé ou s'il a la valeur faux, l'exploration se fait depuis le début de la chaîne. Si back est présent et a la valeur vrai, la recherche se fait depuis la fin de la chaîne (on obtient la dernière "occurrence" de l'un des caractères mentionnés dans set).


verify (string, set [, back])

test d'absence catégorie: D arguments: c,c[,l] résultat: i

Renvoie le rang (de type entier standard) du premier caractère de string absent dans l'alphabet set. Si back (de type logical) n'est pas précisé ou s'il a la valeur faux, l'exploration se fait depuis le début de la chaîne - on obtient la position du premier caractère de string qui ne figure pas dans set. Si back a la valeur vrai, cette recherche se fait depuis la fin de la chaîne. Le résultat vaut 0 si tous les caractères de la chaîne string figurent dans la chaîne set , ou si string est la chaîne vide.


Exemples:
scan("abracadabra","prst") vaut 3
scan("abracadabra","prst",back=.true.) vaut 10
verify("abracadabra","acb") vaut 3
verify("abracadabra","abc",back=.true.) vaut 10



Repetition


repeat (string, ncopies)

répétition de chaîne catégorie: T arguments: c,i résultat: c

Renvoie une chaîne obtenue par concaténation de ncopies exemplaires de la chaîne string. L'argument ncopies doit être entier >=0. Le résultat est la chaîne vide si ncopies =0 ou si string est vide.


Exemples:

repeat("bla",3) vaut "blablabla"


Retour à la table des matières