Fortran語言可以把字符作為單個字符或連續(xù)的字符串。
字符串可以是只有一個長度的字符,或者它甚至可以是零長度。在Fortran語言,字符常量是一對雙引號或單引號之間字符內容。
內部數(shù)據(jù)類型的字符存儲字符和字符串。字符串的長度可以通過len個符來指定。如果沒有指定長度,它是長度是1. 可以將字符串按位置指的是指在單個字符;最左邊的字符的位置是1。
聲明一個字符串跟其他變量是一樣的:
type-specifier :: variable_name
例如,
Character(len=20) :: firstname, surname
可以指定一個值類似,
character (len=40) :: name name = “Zara Ali”
下面的例子演示了聲明和使用字符數(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
當編譯并執(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. Beans' print *, 'Here is', name print *, greetings end program hello
當編譯并執(zhí)行上述程序,將產生以下結果:
Here is Mr. Rowan Atkinson A big hello from Mr. Bean
在Fortran中,可以通過索引的字符串,開始和子串一對括號的結束索引,從字符串中提取一個子字符串。這就是所謂的范圍說明。
下面的示例顯示了如何提取字符串'Hello World'的子字符串“world”:
program subString character(len=11)::hello hello = "Hello World" print*, hello(7:11) end program subString
當編譯并執(zhí)行上述程序,將產生以下結果:
World
例子
下面的示例使用 date_and_time 函數(shù),得到日期和時間的字符串。我們使用范圍說明符單獨提取年份,日期,月份,小時,分鐘和秒的信息。
program datetime implicit none character(len = 8) :: dateinfo ! ccyymmdd character(len = 4) :: year, month*2, day*2 character(len = 10) :: timeinfo ! hhmmss.sss character(len = 2) :: hour, minute, second*6 call date_and_time(dateinfo, timeinfo) ! let’s break dateinfo into year, month and day. ! dateinfo has a form of ccyymmdd, where cc = century, yy = year ! mm = month and dd = day year = dateinfo(1:4) month = dateinfo(5:6) day = dateinfo(7:8) print*, 'Date String:', dateinfo print*,