En fortran, il est possible de concaténer deux strings, supposons que nous ayons 2 strings (string1, string2) de longueur 20 et que l'on souhaite additionner ces deux strings ensemble pour former un nouveau string (string3). Dans ce cas il suffit d'utiliser l'opérateur // pour additionner les deux strings (voir exemple 1 ci-dessous). Néanmoins, si le string 1 contient principalement des espaces en fin vous allez obtenir (voir exemple 1) un strings 3 avec le même nombres d'espaces entre le string 1 et 2, pour remédier à cela il suffit de rogner (trim() en anglais) le string 1 pour supprimer les espaces et diviser (split en anglais comme ceci: string1(1:len( trim(string1) )) (voir exemple 2). Finalement pour ajouter un simple espace entre les deux strings il suffit de faire comme dans l'exemple 3:
program ConcatenateTwoStringsFortranimplicit noneinteger :: i,jcharacter*20 :: string1, string2character*40 :: string3string1 = 'Hello'string2 = 'World !'!write(6,*) string1, string2!string3 = string1 + string2string3 = string1//string2write(6,*) 'Exemple 1: ',string3string3 = string1(1:len( trim(string1) ))//string2write(6,*) 'Exemple 2: ',string3string3 = string1(1:len( trim(string1) ))//' '//string2write(6,*) 'Exemple 3: ', string3end program ConcatenateTwoStringsFortran
qui donne:
Exemple 1: Hello World !Exemple 2: HelloWorld !Exemple 3: Hello World !
Note: ne pas utiliser l'opérateur '+' pour additionner deux strings au risque d'avoir le message d'erreur suivant:
string3 = string1 + string21Error: Operands of binary numeric operator '+' at (1) are CHARACTER(1)/CHARACTER(1)
Recherches associées
| Liens | Site |
|---|---|
| TRIM — Remove trailing blank characters of a string | gcc doc |
| LEN — Length of a character entity | gcc doc |
| CHARACTER Operator and Substrings | cs.mtu |
