您现在的位置:小学生自学网>> 信息>> 学习电脑

2串

作者: 来源: 发布时间:2009年01月14日 点击数:
 

一、串的概念
   串又称为字符串,是由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,. {最后编码}
   解码过程为编码的逆过程。

上一篇:1数据结构概述

下一篇:3栈