《Pascal经典字符串操作教程.ppt》由会员分享,可在线阅读,更多相关《Pascal经典字符串操作教程.ppt(7页珍藏版)》请在三一办公上搜索。
1、08 集训队讲稿 谷老师,串是由零个或多个字符组成的有限序列。一个串中包含的字符个数称为这个串的长度。长度为零的串称为空串,它不包含任何字符。,串运算,知识点回顾,08 集训队讲稿 谷老师,1.连接运算函数concat(s1,s2,sn):其中值参s1,sn为string类型,函数值为string类型。若连接后的串长大于255,则自动截断超出部分。2.求子串函数copy(s,i,l):其中值参s为string类型,i和l为integer类型。函数返回s串中第i个字符开始、长度为l的子串(string类型)。若i大于s的长度,则回送一个空串;若l大于第 i个字符开始的余串长度,则仅回送余串。3.
2、删子串过程delete(var s,i,l):其中变量参数s为string类型,值参i、l为ingteger类型。该过程删去s中第i个字符开始的长度为l的子串,并返回剩余串s。若i大于原串s的长度,则不删任何字符;若l大于第i个字符开始的余串长度,则删去余串。,在串运算中充分利用系统的库函数,08 集训队讲稿 谷老师,4.插入子串过程insert(s1,var s,i):变量参数s为string类型,值参s1为string类型。该过程将s1子串插入空串s的第i个字符位置处,并返回插入后的结果s。若插入后s的串长大于255个字符,则截断超出部分。5.求串长函数length(s):值参s为stri
3、ng类型。该函数返回s串的实际长度值(integer类型)。6.搜索子串位置函数pos(s1,s2):值参s1和s2为string类型。若s1是s2的一个子串,则返回s1中第1个字符在s2串中的位置(integer类型);若s1非s2的一个子串,则返回0。7.数值转换为数串过程str(x,var s):值参x为integer类型或real类型,变量参数s为string类型。该过程将返回数值x对应的数串s。8.数串转换为数值过程val(s,var v,var c):值参s为string类型,变量参数v为integer类型或real类型,变量参数c为integer类型。该过程试将s串转换成数值v。
4、若转换成功,则c为0,并返回对应的数值v;否则c为无效字符的序数。9.字符的大写转换函数upcase(ch):值参ch为char类型。该函数返回ch字符的大写体(char类型),08 集训队讲稿 谷老师,实例一:数码排序,设有n个正整数,将他们连接成一排,组成一个最大的多位整数.例如:n=3时,3个整数13,312,343,连成的最大整数为:34331213。又如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。程序输入:N N个数程序输出:连接成的多位数,08 集训队讲稿 谷老师,实例二:字符串编辑,从键盘输入一个字符串(长度40个字符),并以字符.结束.例如:Thi
5、s is a book.,现对该字符串进行编辑,编辑功能有:D:删除一个字符,命令的方式为:D a。其中a为被删除的字符。例如:D s 表示删除字符s,若字符串中有多个s,则删除第一次出现的,如上例中删除的结果为Thi is a book.I:插入一个字符,命令的格式为:I a1 a2。其中a1表示插入到指定字符前面,a2表示将要插入的字符。例如:I s d 表示在指定字符s的前面插入字符d,若原串中有多个s,则插入在最后一个字符的前面。如上例中,原串:This is a book.,插入后:This ids a book.R:替换一个字符,命令格式为:R a1 a2。其中a1为被替换的字符,
6、a2为替换的字符,若在原串中有多个a1,则应全部替换。例如:原串:This is a book.。输入命令:R o e,替换后:This is a beek.。在编辑过程中,若出现被指定的字符不存在时,则给出提示信息,08 集训队讲稿 谷老师,实例三:字符近似查找,设有n个单词的字典表(1n100)。计算某单词在字典表中的四种匹配情况(字典表中的单词和待匹配单词的长度上限为255):i:该单词在字典表中的序号;Ei:在字典表中仅有一个字符不匹配的单词序号;Fi:在字典表中多或少一个字符(其余字符匹配)的单词序号;N:其他情况 当查找时有多个单词符合条件,仅要求第一个单词的序号即可。输入文件 输入文件名为a.in,文件的格式如下:n(字典表的单词数)n行,每行一个单词 待匹配单词,08 集训队讲稿 谷老师,思考题的程序可发送至:E-mail:或则写在竞赛网中程序流言板中,并及时和老师沟通.,Thank you!,