Visual-Fortran90-第8章-字符型数据-FORTRAN90程序设计-教学课件.ppt
8.1 字符型数据基础字符型数据基础8.5 字符型数据作为过程变元及函数值字符型数据作为过程变元及函数值8.2 字符型数据的输入输出字符型数据的输入输出8.6 程序举例程序举例8.3 字符型数组字符型数组8.4 用于字符处理的内在函数用于字符处理的内在函数第8章 字符型数据包括:字符型常量包括:字符型常量 字符型变量字符型变量 字符子串字符子串 字符型表达式字符型表达式 字符赋值语句字符赋值语句字符比较字符比较8.1 字符型数据基础8.1.1 字符型常量与变量字符型常量与变量说明说明(1)字符常量区分字母大小写字符常量区分字母大小写 (2)空格为有效字符空格为有效字符 (3)字符不受字符不受fortran90字符集的限制字符集的限制 (4)单撇号为有效字符时单撇号为有效字符时,改写为两个单撇号或双撇改写为两个单撇号或双撇号号 (5)种别参数用前缀法表示种别参数用前缀法表示 (6)长度长度=0长度为长度为0:由两个连:由两个连续的撇号表示续的撇号表示 或或 字符常量的写法:字符常量的写法:一串字符一串字符 或或 一串字符一串字符8.1 字符型数据基础 长度为字符的个数长度为字符的个数:起止界不算起止界不算 两个单撇号或双撇号算一个两个单撇号或双撇号算一个 空格为有效字符算一个空格为有效字符算一个字符型常量长度的计算字符型常量长度的计算字符型变量字符型变量(1)字符变量的含义:对应内存一片连续的存储空字符变量的含义:对应内存一片连续的存储空间间(2)字符变量应字符变量应先先说明其类型、长度、名字,说明其类型、长度、名字,再再使使用用个别优个别优于统一于统一3、如若个别说明,可在变量后指明其具体长度:、如若个别说明,可在变量后指明其具体长度:例:例:character(8):strg,strh,stri*12 4、不说明长度,长度默认为不说明长度,长度默认为1 例:例:character:a,b,c字符型变量的类型说明:字符型变量的类型说明:5、长度可为整型表达式,但要加括号、长度可为整型表达式,但要加括号例:例:character(2):a,b*(2+3)6、有时可、有时可把长度值写成一个星号,把长度值写成一个星号,表示此处暂不指明其长表示此处暂不指明其长度,也可理解为长度任意,度,也可理解为长度任意,但要加括号。例:但要加括号。例:Character(LEN=*):CH,PARA Character(*):CH,PARA Character*(*):CH,PARA Character(2):CH,PARA*(*)使用范围使用范围:(1)具有)具有PARAMETER属性的字符常量属性的字符常量 Character(*),parameter:para=FORTRAN_90 字符串长度字符串长度取对应的字符常量的长度取对应的字符常量的长度。(2)用字符变量作为虚元时,虚元的长度)用字符变量作为虚元时,虚元的长度取对应实元的长度取对应实元的长度 虚元可以和任意长度的实元相结合,有利于提高子程序的通用性。虚元可以和任意长度的实元相结合,有利于提高子程序的通用性。类型说明类型说明字符串中一段连续的部分称为字符串中一段连续的部分称为字符子串字符子串或或子字符串子字符串,而原字符串称,而原字符串称为该字串的母串。为该字串的母串。例:已知例:已知 A=123456 则则 123,456是是A的子串的子串子串的一般形式为:子串的一般形式为:其中,其中,e1和和e2为为整型表达式整型表达式,表示起始和终止位置。,表示起始和终止位置。1=e1=e2=长度长度L例:子串写法例:子串写法 A(1:3)123 A(4:5)45 A(3:3)3 A(:4)1234 A(4:)456 A(:)1234568.1.2 字符子串字符子串字符变量名(字符变量名(e1:e2)功能:计算功能:计算e;转化为;转化为V的长度;赋值的长度;赋值 例:例:character:LONG*8,SHORT*3 LONG=ABCD;SHORT=ABCDEF LONG:SHORT:A B CA B C D长:截取长:截取左边左边 短:右补空格短:右补空格 LONG(1:2)=SS 子串赋值不影响其它子串的值子串赋值不影响其它子串的值注注:同一变量名出现在赋值号两侧:同一变量名出现在赋值号两侧,有警告错误有警告错误,但仍可执行。但仍可执行。错例:错例:NAME=NAME/SUN字符型赋值语句字符型赋值语句写法写法:字符变量或子串变量:字符变量或子串变量V=字符型表达式字符型表达式e用关系运算符把字符常数、字符变量、字符数组元素等字用关系运算符把字符常数、字符变量、字符数组元素等字符型数据连接起来的有意义的式子。结果为符型数据连接起来的有意义的式子。结果为逻辑型值逻辑型值。例:例:abcL,在字符变量,在字符变量左边左边补足补足w-L个空格输出(个空格输出(右对齐右对齐),),如上例中如上例中B;若若wL,从,从左边截取左边截取w个字符输出,若上例中个字符输出,若上例中C。输出:输出:A1234B1234C1例例:CHARACTER(LEN=5):A,B,C*4A=A1234B=B1234C=C123PRINT(1X,A5,A7,A2),A,B,C例例8-4 用自定格式输入和输出字符型数据。用自定格式输入和输出字符型数据。(掌握数据输入格式掌握数据输入格式)如输入:如输入:FORTRANCHARACTER(LEN=1),DIMENSION(1:7):A1、READ(7A1),(A(I),I=1,7)输入:输入:FORTRAN2、READ*,(A(I),I=1,7)输入:输入:F,O,R,T,R,A,NCHARACTER(7):):A1、READ*,A 输入输入FORTRAN2、READ(A),A 输入输入FORTRAN程序设计举例(程序设计举例(P206)表控格式输入表控格式输入自定格式输入自定格式输入输入:输入:Harbin,Shanghai,Anda,Beijing,DaqingCHARACTER(10),DIMENSION(5):CITYCHARACTER(10):TEMPREAD*,CITYDO I=1,4K=I DO J=I+1,5 IF(CITY(J)0)K=K+1A(K)=MOD(N,10)N=N/10 ENDDODO I=1,K/2IF(A(I)/=A(K-I+1)EXITENDDOIF(IK/2)THENPRINT*,M,是回文!是回文!ELSEPRINT*,M,不是回文!不是回文!ENDIFEND数字分解数字分解第第I次比较不等则退出次比较不等则退出若循环正常结束,若循环正常结束,则循环变量则循环变量 终值终值u字符型数据基础字符型数据基础:字符常量、变量、表达式、赋值、比较:字符常量、变量、表达式、赋值、比较u字符型数据的输入输出字符型数据的输入输出:表控格式、自定格式(:表控格式、自定格式(A,Aw)u字符型数组字符型数组(加(加dimension属性)属性)u用于字符处理的内在函数用于字符处理的内在函数:LEN和和LEN_TRIM、TRIM、ICHAR和和CHAR、INDEX、ADJUSTL和和ADJUSTR等等u字符型数据作为过程的变元及函数值字符型数据作为过程的变元及函数值(LEN=*)(字符、(字符、数组)数组)u程序举例程序举例本章小结本章小结