Fortran語言文字

2018-12-12 14:24 更新

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

人物的級聯(lián)

連接運算符//符,連接字符。

下面的例子說明了這一點:

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

一些字符函數(shù)

下表顯示與說明書一起一些常用字符的功能:

功能描述
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

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號