Fortran语言文字
Fortran语言可以把字符作为单个字符或字符串连片。
人物可能是从基本字符集,即从字母,十进制数字,下划线和21特殊字符所采取的任何符号。
字符常量是一个固定值的字符串。
内部数据类型存储字符的字符和字符串。字符串的长度可以通过LEN说明指定。如果未指定长度,它是1。您可以一个字符串按位置指内引用单个字符;最左边的字符的位置是1。
性格宣言
声明一个字符类型的数据是一样的其他变量:
type-specifier :: variable_name
例如,
character :: reply, sex
您可以分配一个值一样,
reply = ‘N’ sex = ‘F’
下面的例子演示了声明和使用字符数据类型:
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
当你编译和执行上面的程序它产生以下结果:
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
当你编译和执行上面的程序它产生以下结果:
Here is Mr.Rowan Atkinson A big hello from Mr.Bean
一些字符函数
下表显示与说明书一起一些常用字符的功能:
功能 | 描述 |
---|---|
LEN(字符串) | 它返回字符串的长度 |
指数(字符串,sustring) | 它科幻NDS子串的位置在另一个字符串,如果没有找到返回0。 |
ACHAR(INT) | 一个整数转换成字符 |
IACHAR(三) | 它的字符转换成一个整数 |
TRIM(字符串) | 它返回删除了尾随空格的字符串。 |
扫描(字符串,字符) | 它搜索“字符串”由左到右(除非回来= .TRUE。)包含在“字符”任意字符的第一次出现。它返回一个整数,该字符,或零的位置,如果没有一个字符的“字符”已被发现。 |
验证(字符串,字符) | 它扫描“字符串”由左到右(除非回来= .TRUE。)不包含在“字符”任意字符的第一次出现。如果只在“字符”的人物已经发现它返回一个整数,该字符的位置,或零 |
adjustl(字符串) | 它留下载于“串”,不问角色 |
adjustr(字符串) | 它的权利证明包含在“串”字 |
LEN_TRIM(字符串) | 它返回等于“字符串”的长度整数(LEN(字符串))减去尾随空白的数量 |
重复(字符串,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
当你编译和执行上面的程序它产生以下结果:
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
当你编译和执行上面的程序它产生以下结果:
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
当你编译和执行上面的程序它产生以下结果:
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
下面的函数演示了如何使用:
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
当你编译和执行上面的程序它产生以下结果:
a is lexically greater than A B is lexically greater than A A is lexically less than a A is lexically less than B