字元常數是括在一組單引號內的一串字元, 其長度即其字元數。 字元變數則用下列型式敘述宣告:
CHARACTER*n, list
其中 list 為一組字元變數, n 即指每一變數含 n 個字元。 在 list 之前的 逗點可省略。 若省略 n, 則預設為 1。
例如:
CHARACTER*10 STREET, CITY, STATE
宣告 STREET, CITY, 和 STATE 為長度 10 的字元變數。 各別變數的長度規定, 也可以變動, 只要在該變數的後面附加長度描述式 *m; 例如
CHARACTER*10 STREET*20, CITY, STATE
宣告 STATE 和 CITY 長度為 10, 而 STREET 的長度為 20。 當在副程式的形式引數中用到字元型式時, 可以使用假設的長度規定式 * ,
CHARACTER*(*) list
如此, 形式引數的長度將和實際引數相同。
連接(concatenation)兩組字元資料可以用 // 連接。 例如,
'CENTI' // 'METERS'
產生
'CENTIMETERS'
次字串(substring)
另一常用的字串運算是從一字串取出一部分。 例如,
假設字元變數 UNITS 內含
'CENTIMETERS'
則用 UNIT(4:7) 即可取出第4個到第7個字元的次字串 'TIME'。
次字串的起啟和終止位置, 可以使用整數常數,變數或陳式規定。 假如未註明起啟位置, 則假設為 1。 假如未註明終止位置, 則假設為該變數內含字串的最後位置。 例如, UNIT(:4) 之值為 'CENT', 而 UNIT(4:) 之值為 'TERS'。 注意起啟位置應為正, 而終止位置應大於起啟位置。
修改字串的一部分時, 可以引用次字串。 例如,
UNIT(:5) = 'MICRO'
則 UNIT 的值變成 'MICROMETERS'。
字元資料的輸出和輸入, 可以使用串列式或格式化 I/O。 用法見第六章。
當抽取或修改次字串時, 往往要先找其在字串中的位置。 例如, 想在
'ATOMIC WEIGHT OF KRYPTON'
中找 'WEIGHT' 的置, 可使用 FORTRAN 的庫存函數 INDEX :
INDEX('ATOMIC WEIGHT OF KRYPTON', 'WEIGHT')
計算, 其值應為 8。
另一 FORTRAN 的庫存函數 LEN, 用以計算字串的長度。 例如,
CHARACTER*20 NAME NAME = 'JOHN DOE'則
敘述 結果 -------------------------------------------- PRINT *, LEN('JOHN DOE') 8 PRINT *, LEN(NAME) 20 N = LEN('MR. ' // NAME) N 值為 24 PRINT *, LEN(NAME(9:)) 12 DO 10 I = 1, LEN(NAME) 迴圈重覆 20 次 --------------------------------------------例題: EDITOR (source)
例如,
LLT('1', 'A')
為真。
ICHAR(char)
char為以單一字元為值的陳式。
ICHAR 的反函數(inverse function) CHAR 用法如下:
CHAR(integer)
此函數產生一字元, 在對併順序中的位置為 integer。
FORTRAN 90 特色
"CENTIMETERS"