Pascal经典字符串操作 教程
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
当查找时有多个单词符合条件,仅要求第一个单词的序号即可。 输入文件 输入文件名为a.in,文件的格式如下: 输入文件名为a.in,文件的格式如下: n(字典表的单词数) n行,每行一个单词 待匹配单词
08 集训队讲稿 谷老师
考题 考题
可发 可发
: ,并 时 并
E-mail : guxiaoh@ 则写 竞赛网 师沟 .
08 集训队讲稿 谷老师
4.插入子串——过程insert(s1, var s,i):变量参数s为string类型, 插入子串——过程insert(s ——过程insert(s1 i):变量参数s string类型 类型, 值参s 值参s1 为 string 类型。该过程将s1子串插入空串s 的第 i个字符位 string类型 该过程将s 子串插入空串s的第i 类型。 置处,并返回插入后的结果s 若插入后s的串长大于255个字符, 255个字符 置处,并返回插入后的结果s。若插入后s的串长大于255个字符, 则截断超出部分。 则截断超出部分。 5.求串长——函数length(s):值参s string类型 该函数返回s 求串长——函数length(s) 类型。 5.求串长——函数length(s):值参s为string类型。该函数返回s串的 实际长度值(integer类型 类型)。 实际长度值(integer类型)。 搜索子串位置——函数pos(s ——函数pos(s1 值参s string类型 类型。 6.搜索子串位置——函数pos(s1,s2):值参s1和s2为string类型。若 的一个 子串 s1 是 s2 的一个子串 , 则返回 s1 中第 1 个字符在 s2 串中 的位置 integer类型 类型) 的一个子串,则返回0 (integer类型);若s1非s2的一个子串,则返回0。 数值转换为数串——过程str(x ——过程str(x, s):值参x integer类型或 类型或real 7.数值转换为数串——过程str(x,var s):值参x为integer类型或real 类型,变量参数s string类型 该过程将返回数值x 类型。 类型,变量参数s为string类型。该过程将返回数值x对应的数串 s。 数串转换为数值——过程val(s ——过程val(s, c):值参s string类型 类型, 8.数串转换为数值——过程val(s,var v,var c):值参s为string类型, 变量参数v integer类型或real类型 变量参数c integer类型 类型或real类型, 类型。 变量参数 v为integer 类型或real 类型 , 变量参数c为 integer 类型。 该过程试将s串转换成数值v 若转换成功, 该过程试将s串转换成数值v。若转换成功,则c为0,并返回对 应的数值v 否则c为无效字符的序数。 应的数值v;否则c为无效字符的序数。 字符的大写转换—— 函数upcase(ch) 值参ch char类型 ——函数 upcase(ch): ch为 类型。 9. 字符的大写转换 —— 函数 upcase(ch) : 值参 ch 为 char 类型 。 该函 数返回ch字符的大写体(char类型 ch字符的大写体 类型) 数返回ch字符的大写体(char类型)
Thank you !
08 集训队讲稿 谷老师
08 集训队讲稿 谷老师
实例一:数码排序 实例一:
设有n个正整数,将他们连接成一排, 设有n个正整数,将他们连接成一排,组成一个最大 的多位整数. 例如:n=3 的多位整数 . 例如: n=3 时 , 3 个整数 13, 312 , 个整数13 , 312, 343, 连成的最大整数为:34331213 。 343 , 连成的最大整数为: 34331213。 又如: n=4 时 , 4 个整数 7 , 13 , 4 , 246 连接成的最大 n=4 个整数7 13, 246连接成的最大 整数为7424613。 整数为7424613。 程序输入:N 程序输入:N N个数 程序输出:连接成的多位数
08 集训队讲稿 谷老师
实例二: 实例二:字符串编辑
从键盘输入一个字符串(长度≤40个字符) 并以字符’ 结束. 从键盘输入一个字符串(长度≤40个字符),并以字符’.’结束. 例如:’ 例如:’This is a book.’,现对该字符串进行编辑,编辑功能 book. 现对该字符串进行编辑, 有: D:删除一个字符,命令的方式为:D a。其中a为被删除的字符。 :删除一个字符,命令的方式为:D 其中a为被删除的字符。 例如:D 例如:D s 表示删除字符’s’,若字符串中有多个’s’,则 表示删除字符’s’,若字符串中有多个’s’, 删除第一次出现的,如上例中删除的结果为’ 删除第一次出现的,如上例中删除的结果为’Thi is a book.’ book. I:插入一个字符,命令的格式为:I a1 a2。其中a1表示插入到 :插入一个字符,命令的格式为:I 其中a 指定字符前面, 表示将要插入的字符。例如:I 指定字符前面,a2表示将要插入的字符。例如:I s d 表示在 指定字符’ s’的前面插入字符 ’ d’, 若原串中有多个’ s’, 指定字符 ’ s’ 的前面插入字符’ d’ , 若原串中有多个 ’ s’ , 则插入在最后一个字符的前面。如上例中,原串:’ 则插入在最后一个字符的前面。如上例中,原串:’This is a book. book.’,插入后:’This ids a book.’ 插入后:’ book. R:替换一个字符,命令格式为:R a1 a2。其中a1为被替换的字 :替换一个字符,命令格式为:R 其中a 符,a2为替换的字符,若在原串中有多个a1,则应全部替换。 为替换的字符,若在原串中有多个a 则应全部替换。 例如:原串:’ 例如:原串:’This is a b’ 换后:’ This is a beek.’。 beek. 在编辑过程中,若出现被指定的字符不存在时,则给出提示信息 08 集训队讲稿 谷老师
实例三: 实例三:字符近似查找
设有n个单词的字典表(1≤n≤100)。计算某单词在字典表中的四种匹配情况 设有n个单词的字典表(1≤n≤100)。计算某单词在字典表中的四种匹配情况 (字典表中的单词和待匹配单词的长度上限为255): (字典表中的单词和待匹配单词的长度上限为255):
i:该单词在字典表中的序号; Ei:在字典表中仅有一个字符不匹配的单词序号; Ei:在字典表中仅有一个字符不匹配的单词序号; Fi:在字典表中多或少一个字符(其余字符匹配)的单词序号; Fi:在字典表中多或少一个字符(其余字符匹配)的单词序号; N:其他情况
串运算
串是由零个或多个字符组成的有限 序列。 序列。一个串中包含的字符个数称为 这个串的长度。 这个串的长度。长度为零的串称为空 它不包含任何字符。 串,它不包含任何字符。
08 集训队讲稿 谷老师
在串运算中充分利用系统的库函数 串运算中充分利用系统的库函数
1.连接运算——函数concat(s1,[,s2,…,sn]):其中值参s1, 1.连接运算——函数concat(s1, s2, 连接运算——函数concat(s1 sn]):其中值参s1 s1, sn为string类型 函数值为string类型。 类型, string类型 ‥,sn为string类型,函数值为string类型。若连接后的串长 大于255 则自动截断超出部分。 255, 大于255,则自动截断超出部分。 求子串——函数copy(s ——函数copy(s, l):其中值参s string类型 类型, 2.求子串——函数copy(s,i,l):其中值参s为string类型,i和l integer类型 函数返回s串中第i个字符开始、长度为l 类型。 为 integer 类型 。 函数返回 s 串中第 i 个字符开始 、 长度为 l 的 子串(string类型 类型) 大于s的长度,则回送一个空串; 子串(string类型)。若i大于s的长度,则回送一个空串; 个字符开始的余串长度,则仅回送余串。 若l大于第 i个字符开始的余串长度,则仅回送余串。 删子串——过程delete(var ——过程 l):其中变量参数s 3.删子串——过程delete(var s,i,l):其中变量参数s为string 类型,值参i ingteger类型 该过程删去s中第i 类型。 类型,值参i、l为ingteger类型。该过程删去s中第i个字符开 始的长度为l的子串,并返回剩余串s 大于原串s的长度, 始的长度为l的子串,并返回剩余串s。若i大于原串s的长度, 则不删任何字符; 大于第i个字符开始的余串长度, 则不删任何字符 ; 若 l 大于第 i 个字符开始的余串长度 , 则 删去余串。 删去余串。