您的位置:首页 > 其它

字符和字符串

2016-04-13 17:29 155 查看
关于字符

类型名:char

功能:说明了一个字符数据集合

范围:Pascal语言的字符集。也就是ASCII字符集

表示方法:字符类型中的一个元素表示就是用单引號括起来的一个且仅一个字符。

‘1’、 ‘A’、 ‘b’

字符类型是有序类型。能够比較大小。

字符类型占内存一个字节。

字符常量的定义:

const

字符常量=‘字符’

字符变量的定义:

Var

字符变量:char;



例题

模拟一个简单的计算器,即输入两个数和一个算符(加、减、乘、除)。输出运算结果。

输入:

12 24

+

输出:

36

Program exam5_4;

Var a,b,c:integer;

ch: char;

begin

readln(a,b);

readln(ch);

case ch of

‘+’: c := a + b;

‘-’: c := a - b;

‘*’: c := a * b;

‘/’: c := a div b;

end;

writeln(c);

end.

字符函数

字符类型是一个有序类型, 字符的大小顺序按其SCⅡ代码的大小而定。

函数succ、pred、ord 适用于字符类型。

比如:

后继函数:succ(‘a’)=‘b’

前继函数:pred(‘B’)=‘A’

序号函数:ord(‘A’)=65

转字符函数:chr(65)=‘A’

练习

按字母表顺序和逆序每隔一个字母打印。即打印出:

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

字符串类型

字符串是由字符组成的有穷序列。

字符串类型定义:

type

<字符串类型标识符>=string
;

var

字符串变量: 字符串类型标识符;

当中:n 是定义的字符串长度,必须是0~255 之间的自然整数,第0 号单元中存放串的实际长度,程序执行时由系统自己主动提供,第1~n号单元中存放串的字符。

若将string
写成string,则默认n值为255。

比如:

type

man=string[8]。

line=string;

var

name:man;

screenline:line。

例题

输入一串字符串,,将当中的小写字母转换为大写字母后输出

思路:

1、枚举每一个字符s[i]

2、推断s[i]是否为小写字母 ‘a’<=s[i]<=‘z’

3、将s[i]转换为大写字母 S[i]:=chr(ord(s[i])-ord(‘a’)+ord(‘A’));

4、输出原字符串

program strtest;

var

s:string;

i:integer;

begin

readln(s);

for i:=1 to ord(s[0]) do

begin

if (s[i]>='a') and (s[i]<='z') then

s[i]:=chr(ord(s[i])-ord('a')+ord('A'));

end;

writeln(s);

end.

1、输入一串英文,抽取出ASCII值为奇数的英文输出。

【输入】FreePascal

【输出】eeasca

2、分别统计一个字符串中大写字母和小写字母的个数。

【输入】AaaBBb123CCccccd

【输出】upper=5 lower=8

字符串的操作

1.+:连接运算符

比如:‘Turbo ’+‘PASCAL’的结果是‘Turbo PASCAL’。若连接的结果字符串长度超过255,则被截成255 个字符。若连接后的字符串存放在定义的字符串变量中,当其长度超过定义的字符串长度时。超过部份字符串被截断。

比如:

var

str1。str2,str3:string[8];

begin

str1:=‘Turbo ’;

str2:=‘PASCAL’;

str3:=str1+str2;

end.

则str3的值为:‘Turbo PA’。

字符串的比較

2.=、〈〉、〈、〈=、〉、〉=:关系运算符

两个字符串的比較规则为。从左到右依照ASCⅡ码值逐个比較,遇到ASCⅡ码不等时,规定ASCⅡ码值大的字符所在的字符串为大。

比如:

‘AB’〈‘AC’ 结果为真。

‘12’〈‘2’ 结果为真;

‘PASCAL ’=‘PASCAL’ 结果为假;

练习

对给定的10个字符串。按其字母的顺序排序输出

字符串的函数和过程

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: