字符数组和字符串类型.ppt
文本预览下载声明
字符数组和字符串类型;数据类型;一、子界与枚举类型 ;子界与枚举
1.子界类型:
当某些变量的取值范围很具体时,可用子界类型,它更符合实际、便于查错和节省内存。
定义如下:
type riqi=1..31;
???? zimu=A..Z;
var day:riqi;
??? ch1:zimu;
也可以直接定义:
??? day:1..31;
??? year:0..200;
??? ch1:A..Z;;2、枚举类型; 枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以下的定义是错误的: type daytype1=(monday,tuesday); daytype2=(monday,wednesday); 可以将枚举类型的定义和变量的定义结合在一起。例如:var a:(monday,tuesday,sunday) ;Type
color=(red,yellow,blue,white,black);
rowtype=array[1..100] of real;
inttype=array[‘A’..’E’] of integer;
colortype=array[color] of char;
Var
a:rowtype;
b:inttype;
c:colortype; ;二、 字符类型; 1、字符数组
无论数组的下标有几个,类型如何,数组元素的类型
必须相同。当数组元素的类型是字符型时,称为字符数组。;例 按字母表顺序和逆序每隔一个字母打印。即打印出: a c e g i k m o q s u w y z x r v t p n l j h f d b;〔例〕在一个字符数组let中形成由a开始的连续26个大写字母
构成的子串,并将其倒置后仍放在let中。;〔例〕在一个字符数组let中形成由a开始的连续26个大写字母
构成的子串,并将其倒置后仍放在let中。;2、字符串类型
字符串常量是其值为一对撇号之间的字符序列,
但不包括撇号;
一个字符串里包含的字符个数称为字符串的长度;
当两个撇号之间不含任何字符时,称为空串,长度为0。;(1)、字符串类型的定义;(2)、字符串运算;;;1、length(st)返回串的长度,结果为整型。;例4.12 随机输入一些国家的英文名字,以end作为输入结束标志,
按字母顺序排序后输出。;作业;例: 求n个字符串的最长公共子串,n20,字符长度不超过255。
如:n=3,由键盘依次输入三字符串为
what is local bus?
name some local bus.
local bus is high speed I/O bus close to the processor.
则最长公共子串为“local bus”;输入一行字符,包含若干个单词。约定相邻的两个单词用空格隔开,编程统计单词的个数。;输入两个整数x、y,输出它们的和。(0=x,y=10^100) ;例 数字合并[问题描述]:设有n个正整数(n=20),将它们联接成一排,组成一个最大的多位整数。例如:n=3时,3个整数13,312,343联接成的最大整数为又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613。[输入]:先输入一个不超过20的自然数n,接下来输入n个整数(每个正整数不超过100位)。[输出]:由n个数联接成的最大的多位数。;[分析与算法选择]: 本例因为涉及将两个自然数连接起来的问题,考虑到输入的整数比较大(最大可以达到100位),长整型也不够,所以采用字符串来处理比较方便。 首先我们自然会想到大的字符串应该排在前面,因为如果A与B是两个由数字字符构成的字符串且AB,一般情况下有A+BB+A,但是当A=B+C时,按字符串的大小定义有AB,些时有可能出现A+BB+A的情况,如A=’121’,B=’12’,则A+B=’12112’,B+A=’12121’,A+BB+A。 为了解决这个问题,我们根据题意引进另一种字符串比较办法,将A+B与B+A相比较,如果前者大于后者,则认为AB,按这一定义将所有的数字字符串从大到小排序后连接起来所得到的数字字符串即是问题的解。排序
显示全部