资源描述:
《数据结构域算法设计-第十课字符与字符串处理教案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十课 字符与字符串处理 一、字符、字符串类型的使用 (一)字符类型 字符类型为由一个字符组成的字符常量或字符变量。 字符常量定义: const 字符常量='字符' 字符变量定义:Ⅱ Var 字符变量:char; 字符类型是一个有序类型,字符的大小顺序按其ASCⅡ代码的大小而定。函数succ、pred、ord适用于字符类型。 例如:后继函数:succ('a')='b' 前继函数:pred('B')='A
2、' 序号函数:ord('A')=65 例1按字母表顺序和逆序每隔一个字母打印。即打印出: acegIkmoqsuwy zxrvtpnljhfdb 程序如下: programex8_1; varletter:char; begin forletter:='a'to'z'do if(ord(letter)-ord('a'))mod2=0thenwrite(letter:3); writeln; forletter:='z'downto'a'do if(
3、ord(letter)-ord('z'))mod2=0thenwrite(letter:3); writeln; end. 分析:程序中,我们利用了字符类型是顺序类型这一特性,直接将字符类型变量作为循环变量,使程序处理起来比较直观。 (二)字符串类型 字符串是由字符组成的有穷序列。 字符串类型定义: type<字符串类型标识符>=string[n]; var 字符串变量:字符串类型标识符; 其中:n是定义的字符串长度,必须是0~255之间的自然整数,第0号单元中存放串的实际长度,程序运行
4、时由系统自动提供,第1~n号单元中存放串的字符。若将string[n]写成string,则默认n值为255。 例如:type man=string[8]; line=string; var name:man; screenline:line; 另一种字符类型的定义方式为把类型说明的变量定义合并在一起。 例如:VAR name:STRING[8]; screenline:STRING; TurboPascal中,一个字符串中的
5、字符可以通过其对应的下标灵活使用。 例如:var name:string; begin readln(nsme); fori:=1toord(name[0])do writeln(name[i]); end. 语句writeln(name[i])输出name串中第i个字符。 例2求输入英文句子单词的平均长度. 程序如下: programex8_2; var ch:string; s,count,j:integer; begi
6、n write('Thesentenceis:'); readln(ch); s:=0; count:=0; j:=0; repeat inc(j); ifnot(ch[j]in[':',',',';','''','!','?','.',''])theninc(s); ifch[j]in['','.','!','?']theninc(count); until(j=ord(ch[0]))or(ch[j]in['.','!','?']); i
7、fch[j]<>'.'thenwriteln('Itisnotasentence.') elsewriteln('Averagelengthis',s/count:10:4); end. 分析:程序中,变量s用于存句子中英文字母的总数,变量count用于存放句子中单词的个数,ch[j]表示ch串中的第j个位置上的字符,ord(ch[0])为ch串的串长度。程序充分利用TurboPascal允许直接通过字符串下标得到串中的字符这一特点,使程序比较简捷。二、字符串的操作 (一)字符串的运算和比较 由
8、字符串的常量、变量和运算符组成的表达式称为字符串表达式。 字符串运算符包括: 1.+:连接运算符 例如:'Turbo'+'PASCAL'的结果是'TurboPASCAL'。 若连接的结果字符串长度超过255,则被截成255个字符。若连接后的字符串存放在定义的字符串变量中,当其长度超过定义的字符串长度时,超过部份字符串被截断。 例如:var str1,str2,str