大家好,又见面了,我是全栈君。
关于字符
类型名: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[n]; var 字符串变量: 字符串类型标识符;
当中:n 是定义的字符串长度,必须是0~255 之间的自然整数,第0 号单元中存放串的实际长度,程序执行时由系统自己主动提供,第1~n号单元中存放串的字符。
若将string[n]写成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个字符串。按其字母的顺序排序输出
字符串的函数和过程
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115352.html原文链接:https://javaforall.cn