Fortran語言可以把字符作為單個字符或連續(xù)的字符串。
字符可以是從基本的字符集,即從字母,十進制數(shù)字,下劃線和21特殊字符所采取的任何符號。
字符常量是一個固定的值的字符串。
內(nèi)部數(shù)據(jù)類型的字符存儲字符和字符串。字符串的長度可以通過len個符來指定。如果沒有指定長度,它是長度是1. 可以將字符串按位置指的是指在單個字符;最左邊的字符的位置是1。
聲明一個字符類型的數(shù)據(jù)是一樣的其他變量:
type-specifier :: variable_name
例如,
character :: reply, sex
可以指定一個值類似,
reply = ‘N’ sex = ‘F’
下面的例子演示了聲明和使用字符數(shù)據(jù)類型:
program hello implicit none character(len=15) :: surname, firstname character(len=6) :: title character(len=25)::greetings title = 'Mr. ' firstname = 'Rowan ' surname = 'Atkinson' greetings = 'A big hello from Mr. Beans' print *, 'Here is ', title, firstname, surname print *, greetings end program hello
當(dāng)編譯并執(zhí)行上述程序,將產(chǎn)生以下結(jié)果:
Here is Mr. Rowan Atkinson A big hello from Mr. Bean
連接運算符//符,連接字符。
下面的例子說明了這一點:
program hello implicit none character(len=15) :: surname, firstname character(len=6) :: title character(len=40):: name character(len=25)::greetings title = 'Mr. ' firstname = 'Rowan ' surname = 'Atkinson' name = title//firstname//surname greetings = 'A big hello from Mr. Beans' print *, 'Here is ', name print *, greetings end program hello
當(dāng)編譯并執(zhí)行上述程序,將產(chǎn)生以下結(jié)果:
Here is Mr.Rowan Atkinson A big hello from Mr.Bean
下表顯示描述一些常用字符的函數(shù):
函數(shù) | 描述 |
---|---|
len(string) | 它返回字符串的長度 |
index(string,sustring) | 在一個字符串找出子串的位置,如果沒有找到則返回0。 |
achar(int) | 將整數(shù)轉(zhuǎn)換成一個字符 |
iachar(c) | 它可將一個字符轉(zhuǎn)換為整數(shù) |
trim(string) | 它返回去掉尾隨空格的字符串。 |
scan(string, chars) | 它會搜索“string”由左到右(除非back=.true)包含在“string”任何字符的第一次出現(xiàn)。它返回一個整數(shù),該字符,或零的位置,如果沒有文字的“字符”已被找到。 |
verify(string, chars) | 它掃描“string”由左到右(除非back=.true)不包含在“string”任何字符的第一次出現(xiàn)。它返回一個整數(shù),該字符的位置,如果只在“字符”的字符被找到,或者沒有找則返回零。 |
adjustl(string) | 它留下左截于“string”包含的字符 |
adjustr(string) | 它留下右截于“string”包含的字符 |
len_trim(string) | 它返回一個整數(shù)等于“string”(len(string))減去尾隨空白的數(shù)量 |
repeat(string,ncopy) | 它返回一個字符串長度等于“ncopy”次數(shù)“string”的長度,并含有“string”的“ncopy”串聯(lián)拷貝 |
實例 1
這個例子顯示使用index函數(shù):
program testingChars implicit none character (80) :: text integer :: i text = 'The intrinsic data type character stores characters and strings.' i=index(text,'character') if (i /= 0) then print *, ' The word character found at position ',i print *, ' in text: ', text end if end program testingChars
當(dāng)編譯并執(zhí)行上述程序,將產(chǎn)生以下結(jié)果:
The word character found at position 25 in text : The intrinsic data type character stores characters and strings.
示例 2
這個例子演示了如何使用trim函數(shù):
program hello implicit none character(len=15) :: surname, firstname character(len=6) :: title character(len=25)::greetings title = 'Mr.' firstname = 'Rowan' surname = 'Atkinson' print *, 'Here is',