- Fortran 教程
- Fortran - 主页
- Fortran - 概述
- Fortran - 环境设置
- Fortran - 基本语法
- Fortran - 数据类型
- Fortran - 变量
- Fortran - 常量
- Fortran - 运算符
- Fortran - 决策
- Fortran - 循环
- Fortran - 数字
- Fortran - 字符
- Fortran - 字符串
- Fortran - 数组
- Fortran - 动态数组
- Fortran - 派生数据类型
- Fortran - 指针
- Fortran - 基本输入输出
- Fortran - 文件输入输出
- Fortran - 过程
- Fortran - 模块
- Fortran - 内在函数
- Fortran - 数值精度
- Fortran - 程序库
- Fortran - 编程风格
- Fortran - 调试程序
- Fortran 资源
- Fortran - 快速指南
- Fortran - 有用的资源
- Fortran - 讨论
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
一些字符函数
下表显示了一些常用的字符函数及其说明 -
先生编号 | 功能说明 |
---|---|
1 | 长度(字符串) 它返回字符串的长度 |
2 | 索引(字符串,sustring) 它查找子字符串在另一个字符串中的位置,如果未找到则返回 0。 |
3 | 阿查尔(整数) 它将整数转换为字符 |
4 | iachar(c) 它将字符转换为整数 |
5 | 修剪(字符串) 它返回删除了尾随空格的字符串。 |
6 | 扫描(字符串、字符) 它从左到右搜索“字符串”(除非 back=.true),以查找“chars”中包含的任何字符的第一次出现。它返回一个给出该字符位置的整数,如果没有找到“chars”中的任何字符,则返回零。 |
7 | 验证(字符串,字符) 它从左到右扫描“字符串”(除非 back=.true),以查找“字符”中未包含的任何字符的第一次出现。它返回一个整数,给出该字符的位置,如果仅找到“chars”中的字符,则返回零 |
8 | 调整(字符串) 它左对齐“字符串”中包含的字符 |
9 | 调节器(绳) 它正确对齐“字符串”中包含的字符 |
10 | len_trim(字符串) 它返回一个整数,等于“string”的长度 (len(string)) 减去尾随空格的数量 |
11 | 重复(字符串,ncopy) 它返回一个长度等于“ncopy”乘以“string”长度的字符串,并包含“ncopy”连接的“string”副本 |
实施例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 isMr. Rowan Atkinson Here isMr. 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
检查字符的词汇顺序
以下函数确定字符的词汇序列 -
先生编号 | 功能说明 |
---|---|
1 | lle(字符,字符) 比较第一个字符在词法上是否小于或等于第二个字符 |
2 | lge(字符,字符) 比较第一个字符在词法上是否大于或等于第二个字符 |
3 | LGT(字符,字符) 比较第一个字符在词法上是否大于第二个字符 |
4 | 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