Contrairement à son ancêtre FORTRAN IV, le langage FORTRAN 77 reconnait l'existence du type prédéfini «chaîne de caractères». Ne nous en privons donc pas.
La taille des chaînes de caractères est fixée lors de la déclaration des objets de type CHARACTER. Par exemple les déclarations :
CHARACTER*10 TRUC
CHARACTER*50 MACHIN
fixent la taille des chaines TRUC et MACHIN à 10 et 50 caractères.
La taille maximum est 255.
Les constantes peuvent s'écrire sous trois formes :
Exemple :
CHARACTER*10 A,B
CHARACTER*20 C,D
...
C = A
B = D
C = A // B
D(2:11) = C(1:5) // A(3:7)
La première instruction copie le contenu de A dans C. Cétant plus longue, les caractères de droite de C sont remplis avec des blancs (cadrage à gauche).
La seconde instruction copie les premiers caractères de D dans B (troncation).
La troisième instruction met bout-à-bout (concatène) les chaînes A et B, le résultat étant transféré ensuite dans C.
La quatrième instruction concatène les 5 premiers caractères de C avec les caractères 3 à 7 de A, le résultat étant placé dans les caractères 2 à 11 de D (les autres caractères de D ne sont pas touchés par l'opération).
On peut comparer des chaines grâce aux opérateurs habituels : .LT. .LE. .EQ. .NE. .GE. .GT. . Pour faire la comparaison la plus courte des chaines est allongée (virtuellement) par des blancs à droite.
Enfin, rappelons que les lectures-écritures de chaînes se font selon la spécification de format A.
Exemple :
WRITE (*,100) 'LITTLE','VERY_BIG_STRING'
100 FORMAT (2A8)
provoque l'écriture de : LITTLE__VERY_BIG