Fortran語言可以把字符作為單個字符或字符串連片。
人物可能是從基本字符集,即從字母,十進制數(shù)字,下劃線和21特殊字符所采取的任何符號。
字符常量是一個固定值的字符串。
內部數(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. Bean' print *, 'Here is ', title, firstname, surname print *, greetings end program hello
當你編譯和執(zhí)行上面的程序它產生以下結果:
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. Bean' print *, 'Here is ', name print *, greetings end program hello
當你編譯和執(zhí)行上面的程序它產生以下結果:
Here is Mr.Rowan Atkinson A big hello from Mr.Bean
下表顯示與說明書一起一些常用字符的功能:
功能 | 描述 |
---|---|
LEN(字符串) | 它返回字符串的長度 |
指數(shù)(字符串,sustring) | 它科幻NDS子串的位置在另一個字符串,如果沒有找到返回0。 |
ACHAR(INT) | 一個整數(shù)轉換成字符 |
IACHAR(三) | 它的字符轉換成一個整數(shù) |
TRIM(字符串) | 它返回刪除了尾隨空格的字符串。 |
掃描(字符串,字符) | 它搜索“字符串”由左到右(除非回來= .TRUE。)包含在“字符”任意字符的第一次出現(xiàn)。它返回一個整數(shù),該字符,或零的位置,如果沒有一個字符的“字符”已被發(fā)現(xiàn)。 |
驗證(字符串,字符) | 它掃描“字符串”由左到右(除非回來= .TRUE。)不包含在“字符”任意字符的第一次出現(xiàn)。如果只在“字符”的人物已經(jīng)發(fā)現(xiàn)它返回一個整數(shù),該字符的位置,或零 |
adjustl(字符串) | 它留下載于“串”,不問角色 |
adjustr(字符串) | 它的權利證明包含在“串”字 |
LEN_TRIM(字符串) | 它返回等于“字符串”的長度整數(shù)(LEN(字符串))減去尾隨空白的數(shù)量 |
重復(字符串,NCOPY) | 它返回長度等于一個字符串“NCOPY”時代“串”的長度,以及包含“NCOPY”“串”的拼接副本 |
例1
這個例子顯示使用索引功能:
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
當你編譯和執(zhí)行上面的程序它產生以下結果:
The word character found at position 25 in text : The intrinsic data type character stores characters and strings.
例2
這個例子演示了如何使用裝飾功能:
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', title, firstname, surname print *, 'Here is', trim(title),' ',trim(firstname),' ', trim(surname) end program hello
當你編譯和執(zhí)行上面的程序它產生以下結果:
Here is Mr. Rowan Atkinson Here is Mr. Rowan Atkinson
例3
這個例子說明了如何使用ACHAR功能
program testingChars implicit none character:: ch integer:: i do i=65, 90 ch = achar(i) print*, i, ' ', ch end do end program testingChars
當你編譯和執(zhí)行上面的程序它產生以下結果:
65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z
以下功能確定字符的詞法序列:
功能 | 描述 |
---|---|
LLE(字符,字符) | 比較第一字符是否是詞法小于或等于第二 |
LG電子(字符,字符) | 比較第一字符是否是詞法大于或等于第二 |
LGT(字符,字符) | 比較的第一個字符是詞法大于第二 |
LLT(字符,字符) | 比較第一字符是否是詞法比第二少 |
例4
下面的函數(shù)演示了如何使用:
program testingChars implicit none character:: a, b, c a = 'A' b = 'a' c = 'B' if(lgt(a,b)) then print *, 'A is lexically greater than a' else print *, 'a is lexically greater than A' end if if(lgt(a,c)) then print *, 'A is lexically greater than B' else print *, 'B is lexically greater than A' end if if(llt(a,b)) then print *, 'A is lexically less than a' end if if(llt(a,c)) then print *, 'A is lexically less than B' end if end program testingChars
當你編譯和執(zhí)行上面的程序它產生以下結果:
a is lexically greater than A B is lexically greater than A A is lexically less than a A is lexically less than B
更多建議: