一、串的概念
串又称为字符串,是由0个或多个字符组成的有限序列。长度为0的串称为空串,它不包含任何字符。
串用'和'括起来。
二、串的运算
1.串的定义:
一般用一维数组实现串的运算,由此串的定义也用数组的形式来实现:
type
stringtype=packed array[1..80] of char;
var
s:stringtype;
另外,还有一种更简便的定义方法,利用turbo pascal中的string类型:
var
s:string;
但是string类型有一个限制:运用string类型定义的数据长度只能是1——255,也就是说不能超过255个字符。
2.串的标准函数
在turbo pascal中有如下标准函数可实现串的运算:
copy(s,x,y):获取从s的第x个位置开始的y个字符
concat(s1,s2,...,sn):相等于s1+s2+...+sn
delete(s,x,y):将s中从第x个位置开始的y个字符删去
insert(s1,s,x):将s1插到s中的第x个位置
length(s):获取s的长度
3.串的基本运算
(1)赋值
(2)连接
(3)求串长
(4)取子串
(5)求子串序号
(6)插入
(7)删除
(8)置换
三、串的匹配算法
示例:
四、练习题:
1.读入一英文句子,单词之间用空格或逗号隔开,统计其中单词个数,并输出各个字母出现的频率。(句子末尾不一定用"."结束)
2.一个句子,只含英文字母,单词间用空格或逗号作为分隔符。统计句子中的单词数,如果含有其他的字符,则只要求输出错误信息及错误类型。
含有大写字母 错误类型 error 1
数字(0-9) 错误类型 error 2
其他非法字符 错误类型 error 3
如 输入: It is 12!
输出: error 1 2 3
输入: i am ,a student
输出: 4
3.编码解码:从键盘输入一个英文句子,设计一个编码、解码程序。
编码过程:先键入一个正整数N(1<=N<=26)。这个N决定了转换关系。 例如当N=1,输入的句子为ABCXYZ时,则其转换码为ABCXYZ不变。当N=2时,其转换码为BCDYZA,其它的非字母字符不变。为使编码较于破译,将转换码的信息自左而右两两交换,若最后仅剩单个字符则不换。然后,将一开始表示转换关系的N根据ascii表序号化成大写字母放在最前面。
如:abcABCxyzXYZ-/,1. n=3
① cdeCDEzabZAB-/,1. {根据N的值转换}
② dcCeEDazZbBA/-1,. {两两交换}
③ CdcCeEDazZbBA/-1,. {最后编码}
解码过程为编码的逆过程。
五年级上册解方程练… | 255454 |
九连环图解解法 | 226878 |
wifi万能钥匙破解的… | 177859 |
纸飞机Skyking(空… | 170827 |
小学语文知识大全(… | 152075 |
各种鱼钩鱼线绑法与… | 116989 |
课题研究的方法有哪些 | 113473 |
人教版pep小学英语… | 104558 |
小学语文知识大全(… | 96812 |
人教版pep小学英语… | 96176 |
小学数学五年级上册… | 93438 |
人教版pep小学英语… | 82584 |
小学语文知识大全(… | 80404 |
笔记本电脑如何关闭… | 79822 |
小学生六一搞笑小品… | 78889 |
不打结的红领巾系法… | 78067 |