PASCAL常用的字符串处理标准函数
PASCAL中常用的函数和过程
随机数在信息学奥林匹克中可用于随机化搜索、穷举等算法,以优化其性能, 也可用于在快速排序中选择关键数,以使其快速排序算法的最坏情况没有固定的 相应数列。
另外,System 单元中随机种子变量的标识符为 RandSeed,你也可以手动修 改它。如果你希望使用了随机数的程序对同一个输入数据能有恒定的输出结果, 可以设置 RandSeed 为一个定值。
附: 如何获取随机数?
随机数是指理论上没有规律可循、在指定范围内每个数的出现几率相等、无 法根据之前的数来预测下一个数的数列。一般随机数生成器的基本原理是:首先 初始化一个随机种子,其初始值可以是任意的整数;在每次获取随机数时,以随 机种子为基础进行某种特殊的运算,获得一个随机数并返回之,然后再对随机种 子进行某种运算,改变随机种子的值。这样,就可以生成许多比较随机的数,但 同一个初始值的随机种子将会生成完全相同的随机数列。
Writeln(-1.5, 'rounds to ', Round(-1.5));{ -2 } end.
5、取小数函数 frac(x) 定义:function Frac(X: Real): Real; 注意:X 是实型表达式. 结果返回 X 的小数部分; 也就是说, Frac(X) = X - Int(_X). 例子: var R: Real; begin R := Frac(123.456); { 0.456 } R := Frac(-123.456); { -0.456 } end.
Pascal常用字符串函数
一、数学函数:Inc(i)使I:=I+1;Inc(I,b)使I:=I+b;Abs(x)求x的绝对值例:abs(-3)=3Chr(x)求编号x对应的字符。
例:Chr(65)=’A’chr(97)=’a’chr(48)=’0’Ord(x)求字符x对应的编号。
例:ord(‘A’)=65ord(‘a’)=97另外:ord(false)=0o rd(true)=1Sqr(x)求x的平方。
例:sqr(4)=16Sqrt(x)求x的开方.例:sqrt(16)=4round(x)求x的四舍五入例:round(4.5)=5trunc(x)求x的整数部分例:trunc(5.6)=5结果是integer型int(x)求x的整数部分例int(5.6)=5.0结果是real型frac(x)求x的小数部分例frac(5.6)=0.6pred(x)求x的前导pred(‘b’)=’a’pred(5)=4pred(true)=falsesucc(x)求x的后继succ(‘b’)=’c’succ(5)=6succ(false)=trueodd(x)判断x是否为奇数。
如果是值为true,反之值为false.Odd(2)=false od d(5)=truepower(a,n)求a的n次方power(2,3)=8exp(b*ln(a))a的b次方random取0~1之间的随机数(不能取到1)randomize随机数的种子函数,在每次设置随机数时都要把这个函数放在最前面.Fillchar(a,size(a),0)数组初始化,即把数组a的值全部置为0SHR:x SHR n把x换成二进制后向右移n位,相当于把x除以2na shr n等价于a div(2^n)SHL:x SHL n把x换成二进制后向左移n位,相当于把x乘以2n二、字符串函数1.连接运算concat(s1,s2,s3…sn)相当于s1+s2+s3+…+sn.例:concat(‘11’,’aa’)=’11aa’;2.求子串。
pascal常用函数
Pascal常用函数PASCAL内自带的函数,通常可以直接调用,特殊的需要调用数据库,如:used math一、标准函数二、数学函数与过程三、字符类型函数四、字符串函数与过程五、布尔类型函数六、math单元的函数与过程一、标准函数标准函数。
Turbo Pascal语言提供了自变量为整型量的标准函数有顺序函数算术函数和转换函数等。
标准函数是Turbo Pascal语言预先定义的,它们实际上是能完成特定功能的称步子程序的程序段。
每个标准函数都用一个标识符来标识,每个标准函数都能完成一个特定的功能,在程序中可以直接调用它们。
Turbo Pascal语言中某些标准函数与数学中的函数有相似之处。
1、整数类型函数整型是顺序类型,即所有的整型数都是按一定的顺序排列的。
如3的后序数是4,350的后序数是351。
以后介绍的布尔型、字符型、枚举类型和子界类型等都是顺序类型。
顺序函数可以对顺序类型数据进行操作,但要注意它们自变量的取值范围。
①前趋函数:Pred(x)函数值为x-l,例如:Pred (6)=5 Pred (-21)=-22②后继函数:Succ (x)函数值为x+l,例如:Succ (l5)=16 Succ (-114)= -113③绝对值函数:Abs (x)函数值为|X|,例如:Abs (-119)=119 Abs (101)=101④平方函数:Sqr (x)函数值为X*X,例如:Sqr (-5)=25 Sqr (l0)= 100以上四个函数的结果仍是整型数。
⑤奇函数:Odd (x),函数的结果为布尔型。
当X为奇数时,函数值为true;当X为偶数时,函数值为false,例如:Odd (13)= True Odd (16)= False⑥字符函数:Chr (X),函数值是序号的ASCII字符,属字符型,例如:Chr (65)=‟A‟ Chr (66)=‟B‟2、实数类型函数在下列算术函数中,X可以是实型或整型数的表达式。
PASCAL标准函数
标准函数
PASCAL语言不仅对某一类型中的数据定义了算符操作而且也定义了函数操作(标准函数)。
标准函数是指PASCAL语言中已预先定义的、用户可以直接使用的函数。
函数的调用格式:
函数名(参数)其中参数可以是常量、变量、表达式。
注意:函数相当于一个表达式,不可以当语句使用,可以写在可执行语句中。
标准数据类型
∙整数类型(没有小数部分)
INTEGER:取值范围 [-32768, 32767]。
占用内存 2个字节( 16位)。
WORD:取值范围 [0, 65535]。
占用内存 2个字节( 16位)。
BYTE:取值范围 [0, 255]。
占用内存 1个字节( 8位)。
LONGINT:取值范围 [-2147483648, 2147483647]。
占用内存 4个字节( 32位)。
SHORTINT:取值范围 [-128, 127]。
占用内存 1个字节( 8位)。
∙实数类型
REAL:取值范围 [2.9E-39, 1.7E+38]。
占用内存 6个字节( 48位)。
∙字符类型
CHAR:单字符型,即取 1个字符,如‘ A’,‘ 1’。
STRING:字符串型,即多个字符,如‘ ABCD!123’,‘ %¥#DS12’
∙布尔型
BOOLEAN:布尔型即为逻辑型,取值为 TRUE、 FALSE,即真、假。
也有序,true 为1,false为0。
常用语句格式。
pascal 正则表达式
pascal 正则表达式Pascal是一种编程语言,而正则表达式是一种用于处理字符串的模式匹配工具。
在Pascal中,可以使用正则表达式进行字符串的匹配和替换操作。
在Pascal中,可以使用正则表达式的库函数来进行正则表达式的处理。
这些函数可以用于执行正则表达式的匹配、查找、替换等操作。
下面是一个使用Pascal进行正则表达式匹配的示例代码:```pascalprogram RegularExpressionsExample;usesRegExpr;varRE: TRegExpr;beginRE := TRegExpr.Create('(\d+)\s+(\w+)\s+(\d+)'); // 创建一个正则表达式对象tryif RE.Exec('John 123 Smith 456') then // 执行正则表达式匹配WriteLn('Matched: ', RE.SubStrings[1], ', ', RE.SubStrings[2], ', ', RE.SubStrings[3]); // 输出匹配结果finallyRE.Free; // 释放正则表达式对象end;end.```在上面的示例中,我们使用了`TRegExpr`类来创建正则表达式对象,并使用`Exec`方法执行匹配操作。
`SubStrings`属性用于获取匹配结果的各个子串。
在示例中,正则表达式`'(\d+)\s+(\w+)\s+(\d+)'`用于匹配包含数字、空格、字母和数字的字符串,并提取出其中的三个子串。
需要注意的是,使用正则表达式需要引入相应的库文件或使用第三方库来实现。
在上面的示例中,我们使用了`RegExpr`单元来实现正则表达式的处理。
Pascal中的常用字符串函数
1. 连接运算concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.例:concat(‘11’,’aa’)=’11aa’;2. 求子串。
Copy(s,I,L) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’3. 删除子串。
过程Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’4. 插入子串。
过程Inse rt(s1,s2,I) 把s1插入到s2的第I个位置例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’5. 求字符串长度length(s) 例:length(‘12abc’)=56. 搜索子串的位置pos(s1,s2) 如果s1是s2的子串,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0.例:pos(‘ab’,’12abcd’)=37. 字符的大写转换。
Upcase(ch) 求字符ch的大写体。
例:upcase(‘a’)=’A’8. 数值转换为数串。
过程Str(x,s) 把数值x化为数串s.例:str(12345,s); 结果s=’12345’9. 数串转换为数值。
过程val(s,x,I) 把数串s转化为数值x,如果成功则i=0,不成功则I为无效字符的序数例:val(‘1234’,x,I);结果x:=1234求长度len gth定义:functi on Length(S: String): Intege r;例子:varS: String;beginReadln (S);Writel n('"', S, '"');Writel n('length = ', Length(S));end.复制子串co py定义:functi on Copy(S: String; Index:Intege r; Count:Intege r): String;注意:S 是字符串类型的表达式。
PASCAL语言字符与字符串
例4、编写一个程序,统计从键盘输入的n(<100)个 英文单词中以c开头的单词,并输出个数。 样例: 输入: 4 an cat bee Cow 输出: cat Cow 2
var a:array[1..100] of string; {记录输入的单词} n,i,s:integer; begin readln(n); {输入单词个数} for i:=1 to n do {输入单词} readln(a[i]); s:=0; {记录单词中一c开头的数目} for i:=1 to n do if (a[i,1]='c')or(a[i,1]='C') then begin s:=s+1; {累加} writeln(a[i]); {输出以c开头的单词} end; writeln(s); end.
a:=’nabcdeg’; 则:a[1]:=‘n’;a[3]:=b; 输出:writeln(a); 或:for i:=1 to length(a) do write(a[i]); 3、从键盘只能接受127个字符;一般都是文件输入。
4、严格区分数字字符、数字字符串与数值的区别,但可以相互转化。 ‘4’<>4 ‘1326’<>1326 如:var a:char; i:integer; a:=‘4’;i:=ord(a)-48; writeln(i); {i=4}
算 法 二:
var ch:char; n,i:integer; a:array[97..122] of integer; {统计字母出现的次数} begin for i:=97 to 122 do a[i]:=0; read(ch); while ch<>'#' do begin if(ch>='a')and(ch<='z') then a[ord(ch)]:=a[ord(ch)]+1; read(ch); end; for i:=97 to 122 do {输出字符及出现的次数} if a[i]>0 then writeln(chr(i),' ',a[i]); end.
PASCAL第十课 字符与字符串处理
PASCAL第十课字符与字符串处理一、字符、字符串类型的使用(一)字符类型字符类型为由一个字符组成的字符常量或字符变量,字符常量定义:const字符常量='字符';字符变量定义:Var字符变量:char;字符类型是一个有序类型, 字符的大小顺序按其ASCⅡ代码的大小而定,函数succ、pred、ord 适用于字符类型,例如:后继函数:succ('a')='b'前继函数:pred('B')='A'序号函数:ord('A')=65【例1】按字母表顺序和逆序每隔一个字母打印,即打印出:a c e g I k m o q s u w yz x r v t p n l j h f d b程序如下:program ex8_1;var letter:char;beginfor letter:='a' to 'z' doif (ord(letter)-ord('a'))mod 2=0 then write(letter:3);writeln;for letter:='z' downto 'a' doif (ord(letter)-ord('z'))mod 2 =0 then write(letter:3);writeln;end.分析:程序中,我们利用了字符类型是顺序类型这一特性,直接将字符类型变量作为循环变量,使程序处理起来比较直观。
(二)字符串类型字符串是由字符组成的有穷序列,字符串类型定义:type <字符串类型标识符>=string[n];var字符串变量:字符串类型标识符;其中:n是定义的字符串长度,必须是0~255之间的自然整数,第0号单元中存放串的实际长度,程序运行时由系统自动提供,第1~n号单元中存放串的字符,若将string[n]写成string,则默认n值为255。
Pascal的运算符和标准函数
表达式是用运算符号或小括号将常量、变 量、函数连接成的式子。Pascal表达式中 只有小括号。运算符也称为算符,算符的 操作对象称为操作数。 运算符按带操作数的个数分为两类:
– 单目运算符:对一个操作数操作。-(负号), +(正号) – 双目运算符:对两个操作数操作。
练习
1、确定下列各常数、表达式的类型和值。 表达式类型是指表达式值(结果)的类型。 ‘A’,’3’,3,true,false, 12/3,12 div 3, 5>3, 5<3, 105 mod 10, round(17/3),trunc(17/3), sqrt(ord(‘2’)-ord(‘0’)), sqr(ord(‘2’)-ord(‘0’)), (5>3) and (5<3) chr(67)
1 (a+b+c) 2
2、判断一个数是否是另一个数的完全平方数。 3、编写程序,交换两个变量的值。
分类
根据运算符运算的意义不同分为算术运算、 布尔运算、逻辑运算、关系运算。 根据运算符的优先级可以将运算符分为单 目运算、“乘”的关系运算、“和”的关 系运算、关系运算。
算术运算符
一共有8个。操作数都是数值型,结果也是 数值型。单目运算符有(+)取正、(-) 取负。双目运算符有(+)加、(-)减、 (*)乘、(/)除、(DIV)取商、(Mod) 取模。
1、取绝对值函数 格式:abs(x) 意义:对x取绝对值。等同于|x| 参数类型:X是数值型(整型或实型) 函数返回值类型:与参数的类型一致。
2、平方函数 格式:sqr(x) 意义:求x的平方。等同于X2。 参数类型:X是数值型 函数返回值类型:与参数的类型一致。
pascal函数大全
pascal函数大全数学函数:pred(x) 求x的前一项数据 pred(‘b’)=’a’ pred(5)=4 pred(true)=falsesucc(x) 求x的后一项数据 succ(‘b’)=’c’ succ(5)=6 succ(false)=trueodd(x) 奇数函数判断x是否为奇数。
如果是值为true,反之值为false. odd(2)=false odd(5)=truepower(a,n) 求a的n次方power(2,3)=8 {只有在开启math库时才可以使用}random 取0~1之间的随机数(不能取到1)randomize 随机数的种子函数,在每次设置随机数时都要把这个函数放在最前面.shr: x shr n 把x换成二进制后向右移n位,相当于把x 除以2nshl: x shl n把x换成二进制后向左移n位,相当于把x 乘以2nfillchar(a,size(a),0) 数组初始化,即把数组a的值全部置为0 {赋成布尔型变量也可以}字符串函数1. 连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.例:concat(‘11’,’aa’)=’11aa’;2. 求子串。
copy(s,i,l) 从字符串s中截取第i个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’3. 删除子串。
过程 delete(s,i,l) 从字符串s中删除第i个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’4. 插入子串。
过程insert(s1,s2,i) 把s1插入到s2的第i个位置例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’5. 求字符串长度 length(s) 例:length(‘12abc’)=56. 搜索子串的位置 pos(s1,s2) 如果s1是s2的子串,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0.例:pos(‘ab’,’12abcd’)=37. 字符的大写转换。
pascalscript语法字符串拼接
pascalscript语法字符串拼接PascalScript是一种基于Delphi语言的脚本语言,用于在Delphi应用程序中动态执行代码。
在PascalScript中,字符串拼接是一种常见且重要的操作,可以用于将多个字符串连接起来形成一个新的字符串。
在PascalScript中,字符串拼接可以通过“+”运算符来实现。
例如,可以使用类似以下的代码来将两个字符串拼接在一起:```pascalvarstr1, str2, result: string;beginstr1 := 'Hello, ';str2 := 'World!';result := str1 + str2;ShowMessage(result);end;```在上面的代码中,我们首先定义了三个字符串变量str1、str2和result,然后将str1和str2进行拼接并将结果存储在result变量中,最后通过ShowMessage函数将结果显示出来。
这样就实现了两个字符串的拼接操作。
除了使用“+”运算符外,PascalScript还提供了Format函数来进行字符串的格式化和拼接。
Format函数可以根据指定的格式将变量插入到字符串中。
例如,可以使用以下代码将一个整数和一个字符串拼接在一起:```pascalvarnum: Integer;str: string;beginnum := 10;str := 'The number is: %d';str := Format(str, [num]);ShowMessage(str);end;```在上面的代码中,我们首先定义了一个整数变量num和一个字符串变量str,然后将字符串格式化为包含一个整数的格式,最后使用Format函数将num变量插入到字符串中并将结果显示出来。
这样就实现了整数和字符串的拼接操作。
除了上述两种方法外,PascalScript还支持使用字符串连接函数来拼接多个字符串。
Pascal经典字符串操作 教程
当查找时有多个单词符合条件,仅要求第一个单词的序号即可。 输入文件 输入文件名为a.in,文件的格式如下: 输入文件名为a.in,文件的格式如下: n(字典表的单词数) n行,每行一个单词 待匹配单词
08 集训队讲稿 谷老师
考题 考题
可发 可发
: ,并 时 并
E-mail : guxiaoh@ 则写 竞赛网 师沟 .
08 集训队讲稿 谷老师
4.插入子串——过程insert(s1, var s,i):变量参数s为string类型, 插入子串——过程insert(s ——过程insert(s1 i):变量参数s string类型 类型, 值参s 值参s1 为 string 类型。该过程将s1子串插入空串s 的第 i个字符位 string类型 该过程将s 子串插入空串s的第i 类型。 置处,并返回插入后的结果s 若插入后s的串长大于255个字符, 255个字符 置处,并返回插入后的结果s。若插入后s的串长大于255个字符, 则截断超出部分。 则截断超出部分。 5.求串长——函数length(s):值参s string类型 该函数返回s 求串长——函数length(s) 类型。 5.求串长——函数length(s):值参s为string类型。该函数返回s串的 实际长度值(integer类型 类型)。 实际长度值(integer类型)。 搜索子串位置——函数pos(s ——函数pos(s1 值参s string类型 类型。 6.搜索子串位置——函数pos(s1,s2):值参s1和s2为string类型。若 的一个 子串 s1 是 s2 的一个子串 , 则返回 s1 中第 1 个字符在 s2 串中 的位置 integer类型 类型) 的一个子串,则返回0 (integer类型);若s1非s2的一个子串,则返回0。 数值转换为数串——过程str(x ——过程str(x, s):值参x integer类型或 类型或real 7.数值转换为数串——过程str(x,var s):值参x为integer类型或real 类型,变量参数s string类型 该过程将返回数值x 类型。 类型,变量参数s为string类型。该过程将返回数值x对应的数串 s。 数串转换为数值——过程val(s ——过程val(s, c):值参s string类型 类型, 8.数串转换为数值——过程val(s,var v,var c):值参s为string类型, 变量参数v integer类型或real类型 变量参数c integer类型 类型或real类型, 类型。 变量参数 v为integer 类型或real 类型 , 变量参数c为 integer 类型。 该过程试将s串转换成数值v 若转换成功, 该过程试将s串转换成数值v。若转换成功,则c为0,并返回对 应的数值v 否则c为无效字符的序数。 应的数值v;否则c为无效字符的序数。 字符的大写转换—— 函数upcase(ch) 值参ch char类型 ——函数 upcase(ch): ch为 类型。 9. 字符的大写转换 —— 函数 upcase(ch) : 值参 ch 为 char 类型 。 该函 数返回ch字符的大写体(char类型 ch字符的大写体 类型) 数返回ch字符的大写体(char类型)
pascal replace用法
pascal replace用法Pascal是一种广泛应用于程序设计和开发的编程语言,其中有一种非常常用的功能是replace函数。
replace函数可以帮助我们在字符串中替换指定的子串,从而实现字符串的修改和处理。
在Pascal中,replace函数的用法非常简单,但是非常实用。
接下来我们就来详细介绍一下Pascal中replace函数的用法。
在Pascal中,replace函数的语法如下所示:```pascalfunction Replace(const S, OldPattern, NewPattern: string): string;```其中,S是原始字符串,OldPattern是要被替换的子串,NewPattern是要替换成的子串。
replace函数会在原始字符串S中查找OldPattern,并将其替换为NewPattern,然后返回替换后的新字符串。
下面我们通过一个简单的示例来演示replace函数的用法:```pascalprogram ReplaceDemo;varS: string;beginS := 'Hello, World!';S := Replace(S, 'World', 'Pascal');writeln(S);end.```在这个示例中,我们首先定义了一个字符串S,并将其赋值为'Hello, World!',然后使用replace函数将字符串S中的'World'替换为'Pascal',最后输出替换后的字符串。
运行程序后,我们会得到输出结果为'Hello, Pascal!',说明replace函数成功地将'World'替换为'Pascal'。
除了简单的字符串替换,replace函数还可以进行更复杂的操作。
比如,我们可以将一个字符串中的多个不同的子串都替换为指定的新子串。
Pascal语言字符串操作大全,Delphi适用
delphi字符串操作大全uses StrUtils;【字符串函数大全】首部function AnsiResemblesText(const AText, AOther: string): Boolean;$[StrUtils.pas功能返回两个字符串是否相似说明ANSI(American National Standards Institute)美国国家标准协会;不区分大小写参考function StrUtils.SoundexProc; var StrUtils.AnsiResemblesProc例子CheckBox1.Checked := AnsiResemblesText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiContainsText(const AText, ASubText: string): Boolean;$[StrUtils.pas功能返回字符串AText是否包含子串ASubText说明不区分大小写参考function StrUtils.AnsiUppercase; function StrUtils.AnsiPos例子CheckBox1.Checked := AnsiContainsText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiStartsText(const ASubText, AText: string): Boolean;$[StrUtils.pas功能返回字符串AText是否以子串ASubText开头说明不区分大小写参考function pareString例子CheckBox1.Checked := AnsiStartsText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiEndsText(const ASubText, AText: string): Boolean;$[StrUtils.pas说明不区分大小写参考function pareString例子CheckBox1.Checked := AnsiEndsText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiReplaceText(const AText, AFromText, AToText: string): string; $[StrUtils.pas功能返回字符串AText中用子串AFromText替换成子串AToText的结果说明不区分大小写参考function SysUtils.StringReplace; type SysUtils.TReplaceFlags例子Edit4.Text := AnsiReplaceText(Edit1.Text, Edit2.Text, Edit3.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiMatchText(const AText: string; const AValues: array of string): Boolean; $[StrUtils.pas功能返回字符串数组AValues中是否包含字符串AText说明不区分大小写参考function StrUtils.AnsiIndexText例子CheckBox1.Checked := AnsiMatchText(Edit1.Text, ['a1', 'a2', 'a3','a4']);━━━━━━━━━━━━━━━━━━━━━首部function AnsiIndexText(const AText: string; const AValues: array of string): Integer; $[StrUtils.pas功能返回字符串AText在字符串数组AValues中的位置说明不区分大小写;如果不包含则返回-1参考function SysUtils.AnsiSameText例子SpinEdit1.Value := AnsiIndexText(Edit1.Text, ['a1', 'a2', 'a3', 'a4']);━━━━━━━━━━━━━━━━━━━━━首部function AnsiContainsStr(const AText, ASubText: string): Boolean; $[StrUtils.pas说明区分大小写参考function StrUtils.AnsiPos例子CheckBox1.Checked := AnsiContainsStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiStartsStr(const ASubText, AText: string): Boolean; $[StrUtils.pas功能返回字符串AText是否以子串ASubText开头说明区分大小写参考function SysUtils.AnsiSameStr例子CheckBox1.Checked := AnsiStartsStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiEndsStr(const ASubText, AText: string): Boolean; $[StrUtils.pas功能返回字符串AText是否以子串ASubText结尾说明区分大小写参考function SysUtils.AnsiSameStr例子CheckBox1.Checked := AnsiEndsStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiReplaceStr(const AText, AFromText, AToText: string): string; $[StrUtils.pas功能返回字符串AText中用子串AFromText替换成子串AToText的结果说明区分大小写参考function SysUtils.StringReplace; type SysUtils.TReplaceFlags例子Edit4.Text := AnsiReplaceStr(Edit1.Text, Edit2.Text, Edit3.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiMatchStr(const AText: string; const AValues: array of string): Boolean; $[StrUtils.pas功能返回字符串数组AValues中是否包含字符串AText说明区分大小写参考function StrUtils.AnsiIndexStr例子CheckBox1.Checked := AnsiMatchStr(Edit1.Text, ['a1', 'a2', 'a3', 'a4']);━━━━━━━━━━━━━━━━━━━━━首部function AnsiIndexStr(const AText: string; const AValues: array of string): Integer; $[StrUtils.pas功能返回字符串AText在字符串数组AValues中的位置说明区分大小写参考function SysUtils.AnsiSameStr例子SpinEdit1.Value := AnsiIndexStr(Edit1.Text, ['a1', 'a2', 'a3', 'a4']);━━━━━━━━━━━━━━━━━━━━━首部function DupeString(const AText: string; ACount: Integer): string;$[StrUtils.pas功能返回字符串AText的ACount个复本说明当ACount为0时返回''参考function System.SetLength例子Edit3.Text := DupeString(Edit1.Text, SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━首部function ReverseString(const AText: string): string; $[StrUtils.pas 功能返回字符串AText的反序说明ReverseString('1234') = '4321'参考function System.SetLength例子Edit3.Text := ReverseString(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function StuffString(const AText: string; AStart, ALength: Cardinal;const ASubText: string): string; $[StrUtils.pas功能返回嵌套字符串说明AStart:嵌套开始位置;ALength:嵌套长度;StuffString('abcd', 2, 0, '12') = 'a12bcd'参考function System.Copy例子Edit3.Text := StuffString(Edit1.Text, SpinEdit1.Value, SpinEdit2.Value,Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function RandomFrom(const AValues: array of string): string; overload;$[StrUtils.pas功能随机返回字符串数组AValues中的一个元素说明之前建议执行Randomize参考function System.Random例子Randomize; Edit3.Text := RandomFrom(['a1', 'a2', 'a3', 'a4']);━━━━━━━━━━━━━━━━━━━━━首部function IfThen(AValue: Boolean; const ATrue: string; AFalse: string =''): string; overload; $[StrUtils.pas功能返回指定的逻辑字符串说明IfThen(True, '是', '否') = '是';IfThen(False, '是', '否') = '否'参考<NULL>例子Edit3.Text := IfThen(CheckBox1.Checked, Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function LeftStr(const AText: string; const ACount: Integer): string;$[StrUtils.pas功能返回字符串AText左边的ACount个字符说明LeftStr('123456', 3) = '123'参考function System.Copy例子Edit3.Text := LeftStr(Edit1.Text, SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━首部function RightStr(const AText: string; const ACount: Integer): string;$[StrUtils.pas功能返回字符串AText右边的ACount个字符说明RightStr('123456', 3) = '456'参考function System.Copy例子Edit3.Text := RightStr(Edit1.Text, SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━首部function MidStr(const AText: string; const AStart, ACount: Integer): string; $[StrUtils.pas功能返回字符串AText从AStart开始的ACount个字符说明其实就是Copy参考function System.Copy例子Edit3.Text := MidStr(Edit1.Text, SpinEdit1.Value, SpinEdit2.Value);━━━━━━━━━━━━━━━━━━━━━首部function SearchBuf(Buf: PChar; BufLen: Integer; SelStart, SelLength: Integer; SearchString: String; Options: TStringSearchOptions = [soDown]): PChar; $[StrUtils.pas功能返回第一个搜索到的指针位置说明这函数常用于文本中搜索字符串参考<NULL>例子///////Begin SearchBuffunction SearchEdit(EditControl: TCustomEdit; const SearchString: String; SearchOptions: TStringSearchOptions; FindFirst: Boolean = False): Boolean; varBuffer, P: PChar;Size: Word;beginResult := False;if (Length(SearchString) = 0) then Exit;Size := EditControl.GetTextLen;if (Size = 0) then Exit;Buffer := StrAlloc(Size + 1);tryEditControl.GetTextBuf(Buffer, Size + 1);P := SearchBuf(Buffer, Size, EditControl.SelStart, EditControl.SelLength, SearchString, SearchOptions);if P <> nil then beginEditControl.SelStart := P - Buffer;EditControl.SelLength := Length(SearchString);Result := True;end;finallyStrDispose(Buffer);end;end;procedure TForm1.Button1Click(Sender: TObject);varSearchOptions: TStringSearchOptions;beginSearchOptions := [];if CheckBox1.Checked thenInclude(SearchOptions, soDown);if CheckBox2.Checked thenInclude(SearchOptions, soMatchCase);if CheckBox3.Checked thenInclude(SearchOptions, soWholeWord);SearchEdit(Memo1, Edit1.Text, SearchOptions);Memo1.SetFocus;end;///////End SearchBuf━━━━━━━━━━━━━━━━━━━━━首部function Soundex(const AText: string; ALength: TSoundexLength = 4):string; $[StrUtils.pas功能返回探测字符串说明根据探测法(Soundex)可以找到相进的字符串;/genealogy/coding.html参考<NULL>例子Edit2.Text := Soundex(Edit1.Text, SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━首部function SoundexInt(const AText: string; ALength: TSoundexIntLength =4): Integer; $[StrUtils.pas功能返回探测整数说明ALength的值越大解码准确率越高参考<NULL>例子SpinEdit2.Value := SoundexInt(Edit1.Text, SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━首部function DecodeSoundexInt(AValue: Integer): string; $[StrUtils.pas功能返回探测整数的解码说明DecodeSoundexInt(SoundexInt('hello')) 相当于Soundex('hello')参考<NULL>例子Edit2.Text := DecodeSoundexInt(SpinEdit2.Value);━━━━━━━━━━━━━━━━━━━━━首部function SoundexWord(const AText: string): Word; $[StrUtils.pas功能返回探测文字数值说明没有参数ALength已经固定为4参考<NULL>例子SpinEdit2.Value := SoundexWord(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function DecodeSoundexWord(AValue: Word): string; $[StrUtils.pas功能返回探测文字数值的解码说明DecodeSoundexWord(SoundexWord('hello')) 相当于Soundex('hello') 参考<NULL>例子Edit2.Text := DecodeSoundexWord(SpinEdit2.Value);━━━━━━━━━━━━━━━━━━━━━首部function SoundexSimilar(const AText, AOther: string; ALength: TSoundexLength = 4): Boolean; $[StrUtils.pas功能返回两个字符串的探测字符串是否相同说明Result := Soundex(AText, ALength) = Soundex(AOther, ALength)参考<NULL>例子CheckBox1.Checked := SoundexSimilar(Edit1.Text, Edit2.Text, SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━首部function SoundexCompare(const AText, AOther: string; ALength: TSoundexLength = 4): Integer; $[StrUtils.pas功能返回比较两个字符串的探测字符串的结果说明Result := AnsiCompareStr(Soundex(AText, ALength), Soundex(AOther, ALength))参考function SysUtils.AnsiCompareStr例子SpinEdit2.Value := SoundexCompare(Edit1.Text, Edit2.Text,SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━首部function SoundexProc(const AText, AOther: string): Boolean; $[StrUtils.pas功能调用SoundexSimilar返回两个字符串的探测字符串是否相同说明系统变量AnsiResemblesProc的默认值参考function StrUtils.AnsiResemblesText例子[var AnsiResemblesProc: TCompareTextProc = SoundexProc;]━━━━━━━━━━━━━━━━━━━━━首部function NewStr(const S: string): PString; deprecated; $[SysUtils.pas 功能返回一个新的字符串指针地址说明字符串S为空时返回NullStr参考procedure System.New例子////////Begin NewStr,DisposeStrprocedure TForm1.Button1Click(Sender: TObject);varP: PString;beginP := NewStr(Edit1.Text);Edit2.Text := P^;DisposeStr(P);end;////////End NewStr,DisposeStr━━━━━━━━━━━━━━━━━━━━━首部procedure DisposeStr(P: PString); deprecated; $[SysUtils.pas功能释放字符串指针P资源说明配合函数NewStr使用参考procedure System.Dispose例子<如上参见,如下参见>━━━━━━━━━━━━━━━━━━━━━首部procedure AssignStr(var P: PString; const S: string); deprecated; $[SysUtils.pas功能将字符串S更新给字符串指针P说明更新值时会释放以前字符串指针的资源参考function SysUtils.NewStr;function SysUtils.DisposeStr例子////////Begin AssignStrprocedure TForm1.Button1Click(Sender: TObject);varP: PString;beginP := nil;AssignStr(P, Edit1.Text);Edit2.Text := P^;DisposeStr(P);end;////////End AssignStr━━━━━━━━━━━━━━━━━━━━━首部procedure AppendStr(var Dest: string; const S: string); deprecated; $[SysUtils.pas功能在字符串Dest后追加字符串S说明相当于Dest := Dest + S;Delphi6已经不建议使用参考<NULL>例子////////Begin AppendStrprocedure TForm1.Button1Click(Sender: TObject);varS: string;beginS := Edit2.Text;AppendStr(S, Edit1.Text);Edit2.Text := S;end;////////End AppendStr━━━━━━━━━━━━━━━━━━━━━首部function UpperCase(const S: string): string; $[SysUtils.pas功能返回字符串S的大写形式说明非小写字符不处理参考procedure System.SetLength例子Edit2.Text := UpperCase(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function LowerCase(const S: string): string; $[SysUtils.pas功能返回字符串S的小写形式说明非大写字符不处理参考procedure System.SetLength例子Edit2.Text := LowerCase(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function CompareStr(const S1, S2: string): Integer; $[SysUtils.pas功能返回比较两个字符说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;区分大小写参考<NULL>例子SpinEdit1.Value := CompareStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function CompareMem(P1, P2: Pointer; Length: Integer): Boolean;assembler; $[SysUtils.pas功能返回比较两个内存指针说明CompareMem(PChar('12a'), PChar('12c'),2)=True;CompareMem(PChar('12a'),PChar('12c'), 3)=False参考<NULL>例子CheckBox1.Checked := CompareMem(Self, Form1, 8);━━━━━━━━━━━━━━━━━━━━━首部function CompareText(const S1, S2: string): Integer; $[SysUtils.pas功能返回比较两个字符串说明不区分大小写参考<NULL>例子SpinEdit1.Value := CompareText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function SameText(const S1, S2: string): Boolean; $[SysUtils.pas功能返回两个字符串是否相等说明不区分大小写参考<NULL>例子CheckBox1.Checked := SameText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiUpperCase(const S: string): string; $[SysUtils.pas功能返回字符串S的大写形式说明ANSI(American National Standards Institute)美国国家标准协会;非小写的字符不变参考function Windows.CharUpperBuff例子Edit2.Text := AnsiUpperCase(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiLowerCase(const S: string): string; $[SysUtils.pas功能返回字符串S的小写形式说明非大写字符不处理参考function Windows.CharLowerBuff例子Edit2.Text := AnsiLowerCase(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiCompareStr(const S1, S2: string): Integer; $[SysUtils.pas功能反回比较两个字符串说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;区分大小写参考function pareString例子SpinEdit1.Value := AnsiCompareStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiSameStr(const S1, S2: string): Boolean; $[SysUtils.pas功能返回两个字符串是否相等说明区分大小写参考function SysUtils.AnsiCompareStr例子CheckBox1.Checked := AnsiSameStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiCompareText(const S1, S2: string): Integer; $[SysUtils.pas功能反回比较两个字符串说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;不区分大小写参考function pareString例子SpinEdit1.Value := AnsiCompareText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiSameText(const S1, S2: string): Boolean; $[SysUtils.pas功能返回两个字符串是否相等说明不区分大小写参考function SysUtils.AnsiCompareText例子CheckBox1.Checked := AnsiSameText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiStrComp(S1, S2: PChar): Integer; $[SysUtils.pas功能返回比较两个指针字符串说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;区分大小写参考function pareString例子SpinEdit1.Value := AnsiStrComp(PChar(Edit1.Text), PChar(Edit2.Text))━━━━━━━━━━━━━━━━━━━━━首部function AnsiStrIComp(S1, S2: PChar): Integer; $[SysUtils.pas功能返回比较两个指针字符串说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;不区分大小写;Ignore(忽略)参考function pareString例子SpinEdit1.Value := AnsiStrIComp(PChar(Edit1.Text), PChar(Edit2.Text))━━━━━━━━━━━━━━━━━━━━━首部function AnsiStrLComp(S1, S2: PChar; MaxLen: Cardinal): Integer;$[SysUtils.pas功能返回比较两个指针字符串指定长度说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;区分大小写;Length(长度)参考function pareString例子SpinEdit1.Value := AnsiStrLComp(PChar(Edit1.Text), PChar(Edit2.Text),SpinEdit2.Value)━━━━━━━━━━━━━━━━━━━━━首部function AnsiStrLIComp(S1, S2: PChar; MaxLen: Cardinal): Integer;$[SysUtils.pas功能返回比较两个指针字符串指定长度说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;不区分大小写参考function pareString例子SpinEdit1.Value := AnsiStrLIComp(PChar(Edit1.Text), PChar(Edit2.Text),SpinEdit2.Value)━━━━━━━━━━━━━━━━━━━━━首部function AnsiStrLower(Str: PChar): PChar; $[SysUtils.pas功能返回指针字符串小写形式说明非大写字符不处理参考function Windows.CharLower例子Edit2.Text := AnsiStrLower(PChar(Edit1.Text));━━━━━━━━━━━━━━━━━━━━━首部function AnsiStrUpper(Str: PChar): PChar; $[SysUtils.pas功能返回指针字符串大写形式说明非小写字符不处理参考function Windows.CharUpper例子Edit2.Text := AnsiStrUpper(PChar(Edit1.Text));━━━━━━━━━━━━━━━━━━━━━首部function AnsiLastChar(const S: string): PChar; $[SysUtils.pas功能返回字符串S的最后一个指针字符说明当字符串S为空串则返回空指针参考function SysUtils.ByteType例子Edit2.Text := AnsiLastChar(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiStrLastChar(P: PChar): PChar; $[SysUtils.pas功能返回指针字符串P的最后一个指针字符说明当字符串P为空空指针则返回空指针参考function SysUtils.ByteType例子Edit2.Text := AnsiLastChar(PChar(Edit1.Text));━━━━━━━━━━━━━━━━━━━━━首部function WideUpperCase(const S: WideString): WideString; $[SysUtils.pas 功能返回双字节字符串的大写形式说明WideChar双字节字符参考function Windows.CharUpperBuffW例子Edit2.Text := WideUpperCase(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function WideLowerCase(const S: WideString): WideString; $[SysUtils.pas 功能返回双字节字符串的小写形式说明我怎么就测试不出来呢参考function Windows.CharLowerBuffW例子Edit2.Text := WideLowerCase(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function WideCompareStr(const S1, S2: WideString): Integer; $[SysUtils.pas功能返回比较两个双字节字符串说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;区分大小写参考function pareStringW例子SpinEdit1.Value := WideCompareStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function WideSameStr(const S1, S2: WideString): Boolean; $[SysUtils.pas 功能返回两个双字节字符串是否相同说明区分大小写参考function SysUtils.WideCompareStr例子CheckBox1.Checked := WideSameStr(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function WideCompareText(const S1, S2: WideString): Integer;$[SysUtils.pas功能返回比较两个双字节字符串说明当S1>S2返回值>0;当S1<S2返回值<0;当S1=S2返回值=0;不区分大小写参考function pareStringW例子SpinEdit1.Value := WideCompareText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function WideSameText(const S1, S2: WideString): Boolean; $[SysUtils.pas功能返回两个双字节字符串是否相同说明不区分大小写参考function SysUtils.WideCompareText例子CheckBox1.Checked := WideSameText(Edit1.Text, Edit2.Text);━━━━━━━━━━━━━━━━━━━━━首部function Trim(const S: string): string; overload; $[SysUtils.pas首部function Trim(const S: WideString): WideString; overload;$[SysUtils.pas功能返回除去字符串S左右不可见字符说明小于#32的字符看作不可见字符参考function System.Copy例子Edit2.Text := Trim(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function TrimLeft(const S: string): string; overload; $[SysUtils.pas 首部function TrimLeft(const S: WideString): WideString; overload; $[SysUtils.pas功能返回除去字符串S左边不可见字符说明小于#32的字符看作不可见字符参考function System.Copy例子Edit2.Text := TrimLeft(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function TrimRight(const S: string): string; overload; $[SysUtils.pas 首部function TrimRight(const S: WideString): WideString; overload; $[SysUtils.pas功能返回除去字符串S右边不可见字符说明小于#32的字符看作不可见字符参考function System.Copy例子Edit2.Text := TrimRight(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function QuotedStr(const S: string): string; $[SysUtils.pas功能返回字符串S在pascal中的表现形式说明单引号中的一个单引号将转成两个参考procedure System.Insert例子Edit2.Text := QuotedStr(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function AnsiQuotedStr(const S: string; Quote: Char): string; $[SysUtils.pas功能返回字符串S以字符Quote为引号的表现形式说明AnsiQuotedStr('hello"world','@')='@hello"world@';AnsiQuotedStr('hello"world', '"')='"hello""world"'参考function SysUtils.AnsiStrScan例子Edit2.Text := AnsiQuotedStr(Edit1.Text, '"');━━━━━━━━━━━━━━━━━━━━━首部function AnsiExtractQuotedStr(var Src: PChar; Quote: Char): string; $[SysUtils.pas功能返回以字符Quote为引号的表现形式原形说明表现形式非法时Src不变否则为空参考function SysUtils.AnsiStrScan例子///////Begin AnsiExtractQuotedStrprocedure TForm1.Button1Click(Sender: TObject);varP: PChar;beginP := PChar(Edit1.Text);Edit2.Text := AnsiExtractQuotedStr(P, '"');Edit3.Text := P;end;///////End AnsiExtractQuotedStr━━━━━━━━━━━━━━━━━━━━━首部function AnsiDequotedStr(const S: string; AQuote: Char): string; $[SysUtils.pas功能返回以字符AQuote为引号的表现形式原形说明表现形式非法时则返回S参考function SysUtils.AnsiExtractQuotedStr例子Edit2.Text := AnsiDequotedStr(Edit1.Text, '"');━━━━━━━━━━━━━━━━━━━━━首部function AdjustLineBreaks(const S: string; Style: TTextLineBreakStyle ={$IFDEF LINUX} tlbsLF {$ENDIF} {$IFDEF MSWINDOWS} tlbsCRLF {$ENDIF}):string; $[SysUtils.pas功能返回将给定字符串的行分隔符调整为CR/LF序列说明AdjustLineBreaks('1'#13'2'#13)='1'#13#10'2'#13#10;AdjustLineBreaks('1'#10'2'# 10)='1'#13#10'2'#13#10参考function SysUtils.StrNextChar例子<NULL>━━━━━━━━━━━━━━━━━━━━━首部function IsValidIdent(const Ident: string): Boolean; $[SysUtils.pas功能返回字符串Ident是否是正确的标识符说明标识符::字母|下划线[字母|下划线|数字]...参考<NULL>例子CheckBox1.Checked := IsValidIdent(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function IntToStr(Value: Integer): string; overload; $[SysUtils.pas首部function IntToStr(Value: Int64): string; overload; $[SysUtils.pas功能返回整数Value转换成字符串说明Format('%d', [Value])参考function SysUtils.FmtStr例子Edit2.Text := IntToStr(SpinEdit1.Value);━━━━━━━━━━━━━━━━━━━━━首部function IntToHex(Value: Integer; Digits: Integer): string; overload;$[SysUtils.pas首部function IntToHex(Value: Int64; Digits: Integer): string; overload;$[SysUtils.pas功能返回整数Value转换成十六进制表现结果;Format('%.*x', [Digits, Value])说明参数Digits指定字符最小宽度;最小宽度不足时将用0填充参考function SysUtils.FmtStr例子Edit2.Text := IntToHex(SpinEdit1.Value, SpinEdit2.Value);━━━━━━━━━━━━━━━━━━━━━首部function StrToInt(const S: string): Integer; $[SysUtils.pas功能返回字符串S转换成整数说明字符串非整数表达时将引起异常参考procedure System.Val例子SpinEdit1.Value := StrToInt(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function StrToIntDef(const S: string; Default: Integer): Integer; $[SysUtils.pas功能返回字符串S转换成整数说明字符串非整数表达时则返回默认值Default参考procedure System.Val例子SpinEdit1.Value := StrToIntDef(Edit1.Text, 0);━━━━━━━━━━━━━━━━━━━━━首部function TryStrToInt(const S: string; out Value: Integer): Boolean; $[SysUtils.pas功能返回字符串S转换成整数Value是否成功说明字符串非整数表达时返回False并且Value将输出为0参考procedure System.Val例子///////Begin TryStrToIntprocedure TForm1.Button1Click(Sender: TObject);varI: Integer;beginCheckBox1.Checked := TryStrToInt(Edit1.Text, I);SpinEdit1.Value := I;end;━━━━━━━━━━━━━━━━━━━━━首部function StrToInt64(const S: string): Int64; $[SysUtils.pas功能返回字符串S转换成六十四位整数说明字符串非六十四位整数表达时将引起异常参考procedure System.Val例子SpinEdit1.Value := StrToInt64(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function StrToInt64Def(const S: string; const Default: Int64): Int64; $[SysUtils.pas功能返回字符串S转换成六十四位整数说明字符串非六十四位整数表达时则返回默认值Default参考procedure System.Val例子SpinEdit1.Value := StrToInt64Def(Edit1.Text, 0);━━━━━━━━━━━━━━━━━━━━━首部function TryStrToInt64(const S: string; out Value: Int64): Boolean; $[SysUtils.pas功能返回字符串S转换成六十四位整数Value是否成功说明字符串非六十四位整数表达时返回False并且Value将输出为0参考procedure System.Val例子///////Begin TryStrToInt64procedure TForm1.Button1Click(Sender: TObject);varI: Int64;beginCheckBox1.Checked := TryStrToInt64(Edit1.Text, I);SpinEdit1.Value := I;end;━━━━━━━━━━━━━━━━━━━━━首部function StrToBool(const S: string): Boolean; $[SysUtils.pas功能返回字符串S转换成逻辑值说明字符非逻辑表达时将引起异常参考function SysUtils.TryStrToBool例子CheckBox1.Checked := StrToBool(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部function StrToBoolDef(const S: string; const Default: Boolean): Boolean; $[SysUtils.pas功能返回字符串S转换成逻辑值说明字符非逻辑表达时则返回默认值Default参考function SysUtils.TryStrToBool例子CheckBox1.Checked := StrToBoolDef(Edit1.Text, False);━━━━━━━━━━━━━━━━━━━━━首部function TryStrToBool(const S: string; out Value: Boolean): Boolean; $[SysUtils.pas功能返回字符串S转换成逻辑值Value是否成功说明[注意]0为假非0为真;不是'True'和'False';Delphi6 Bug 如下修正参考function SysUtils.AnsiSameText;var SysUtils.TrueBoolStrs;var SysUtils.FalseBoolStrs例子///////Begin TryStrToBoolprocedure TForm1.Button1Click(Sender: TObject);varB: Boolean;beginSetLength(TrueBoolStrs, 2);SetLength(FalseBoolStrs, 2);TrueBoolStrs[0] := 'True';FalseBoolStrs[0] := 'False';TrueBoolStrs[1] := 'Yes';FalseBoolStrs[1] := 'No';CheckBox1.Checked := TryStrToBool(Edit1.Text, B);CheckBox2.Checked := B;end;///////End TryStrToBool附加///////Begin TryStrToBoolfunction TryStrToBool(const S: string; out Value: Boolean): Boolean; function CompareWith(const aArray: array of string): Boolean;varI: Integer;beginResult := False;for I := Low(aArray) to High(aArray) doif AnsiSameText(S, aArray[I]) thenbeginResult := True;Break;end;end;varLResult: Extended;beginResult := TryStrToFloat(S, LResult);if Result thenValue := LResult <> 0elsebeginResult := True; //修正处VerifyBoolStrArray;if CompareWith(TrueBoolStrs) thenValue := Trueelse if CompareWith(FalseBoolStrs) thenValue := FalseelseResult := False;end;end;///////End TryStrToBool━━━━━━━━━━━━━━━━━━━━━首部function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string; $[SysUtils.pas功能返回逻辑值B转换成字符串说明BoolToStr(False, False)='0';BoolToStr(False, True)='-1'参考var SysUtils.TrueBoolStrs;var SysUtils.FalseBoolStrs例子Edit1.Text := BoolToStr(CheckBox1.Checked, CheckBox2.Checked); ━━━━━━━━━━━━━━━━━━━━━首部function LoadStr(Ident: Integer): string; $[SysUtils.pas功能返回根据标识Ident的字符串资源说明字符串资源是指程序的内部资源参考function SysUtils.FindStringResource例子Edit2.Text := LoadStr(StrToIntDef(Edit1.Text, 0));━━━━━━━━━━━━━━━━━━━━━首部function FmtLoadStr(Ident: Integer; const Args: array of const): string; $[SysUtils.pas功能返回格式化的字符串资源说明字符串资源是指程序的内部资源参考function SysUtils.FmtStr;function SysUtils.FindStringResource例子<NULL>;━━━━━━━━━━━━━━━━━━━━━首部function StrLen(const Str: PChar): Cardinal; $[SysUtils.pas功能返回指针字符串的长度说明当指针字符串Str为nil时将触发异常参考<NULL>例子SpinEdit2.Value := StrLen(PChar(Edit1.Text));━━━━━━━━━━━━━━━━━━━━━首部function StrEnd(const Str: PChar): PChar; $[SysUtils.pas功能返回指针字符串的结尾说明当指针字符串Str为nil时将触发异常参考<NULL>例子Edit2.Text := StrEnd(PChar(Edit1.Text)) - SpinEdit1.Value;━━━━━━━━━━━━━━━━━━━━━首部function StrMove(Dest: PChar; const Source: PChar; Count: Cardinal):PChar; $[SysUtils.pas功能返回将指针字符串Source指定内存数量Count复制覆盖到指针字符串Dest 中说明Dest没有分配资源将触发异常s参考function System.Move例子///////Begin StrMoveprocedure TForm1.Button1Click(Sender: TObject);varvBuffer: PChar;beginvBuffer := '0123456789';StrMove(vBuffer, PChar(Edit1.Text), SpinEdit1.Value);Edit2.Text := vBuffer;end;///////End StrMove━━━━━━━━━━━━━━━━━━━━━首部function StrCopy(Dest: PChar; const Source: PChar): PChar; $[SysUtils.pas功能返回将指针字符串Source复制到指针字符串Dest中说明Dest应已经分配足够的空间非则将触发异常参考<NULL>例子///////Begin StrCopyprocedure TForm1.Button1Click(Sender: TObject);varvBuffer: PChar;beginGetMem(vBuffer, Length(Edit1.Text) + 1);StrCopy(vBuffer, PChar(Edit1.Text));Edit2.Text := vBuffer;FreeMem(vBuffer);end;///////End StrCopy━━━━━━━━━━━━━━━━━━━━━首部function StrECopy(Dest:PChar; const Source: PChar): PChar; $[SysUtils.pas功能返回将指针字符串Source复制到指针字符串Dest中的结尾说明可以连接指针字符串参考<NULL>例子///////Begin StrECopyprocedure TForm1.Button1Click(Sender: TObject);varvBuffer: array[0..255] of Char;beginStrECopy(StrECopy(vBuffer, PChar(Edit1.Text)), PChar(Edit2.Text));Edit3.Text := vBuffer;end;///////End StrECopy━━━━━━━━━━━━━━━━━━━━━首部function StrLCopy(Dest: PChar; const Source: PChar; MaxLen: Cardinal): PChar; $[SysUtils.pas功能返回将指针字符串Source指定长度MaxLen复制到指针字符串Dest中说明Dest应已经分配足够的空间非则将触发异常参考<NULL>例子///////Begin StrLCopyprocedure TForm1.Button1Click(Sender: TObject);varvBuffer: array[0..255] of Char;beginStrLCopy(vBuffer, PChar(Edit1.Text), SpinEdit1.Value);Edit2.Text := vBuffer;end;///////End StrLCopy━━━━━━━━━━━━━━━━━━━━━首部function StrPCopy(Dest: PChar; const Source: string): PChar; $[SysUtils.pas功能返回将指针字符串Source复制到指针字符串Dest中说明StrLCopy(Dest, PChar(Source), Length(Source))参考function SysUtils.StrLCopy例子///////Begin StrPCopyprocedure TForm1.Button1Click(Sender: TObject);varvBuffer: array[0..255] of Char;beginStrPCopy(vBuffer, PChar(Edit1.Text));Edit2.Text := vBuffer;end;///////End StrPCopy━━━━━━━━━━━━━━━━━━━━━首部function StrPLCopy(Dest: PChar; const Source: string; MaxLen: Cardinal): PChar; $[SysUtils.pas功能返回将字符串Source指定长度MaxLen复制到指针字符串Dest中说明StrLCopy(Dest, PChar(Source), MaxLen)参考function SysUtils.StrLCopy例子///////Begin StrPLCopyprocedure TForm1.Button1Click(Sender: TObject);varvBuffer: array[0..255] of Char;beginStrPLCopy(vBuffer, Edit1.Text, SpinEdit1.Value);Edit2.Text := vBuffer;end;///////End StrPLCopy。
Pascal函数大全全解
Pascal函数大全全解Pascal 函数大全1.数学函数函数标识符自变量类型意义结果类型 abs 整型、实型绝对值同自变量arctan 整型、实型反正切实型 cos 整型、实型余弦实型 exp 整型、实型指数实型 frac 整型、实型小数部分实型 int 整型、实型整数部分实型 ln 整型、实型自然对数实型 pi 无自变量圆周率实型 sin 整型、实型正弦实型sqr 整型、实型平方同自变量 sqrt 整型、实型平方根实型2.标量函数函数标识符自变量类型意义结果类型 odd 整型判断奇数布尔型 pred 离散类型求前趋同自变量 succ 离散类型求后继同自变量3.转换函数函数标识结果类自变量类型意义符型 chr byte型自变量对应的字符字符型 ord 离散类型自变量对应的序号 longint round 实型四舍五入 longint trunc 实型截断取整 longint4.杂类函数结果类函数标识符自变量类型意义型 random 无自变量 [0,1)之间的随机实数 real random word [0,自变量)之间的随机整数 word用一随机值初始化内部随机数产randomize 无自变量 longint 生器upcase 字符型使小写英文字母变为大写字符型Pascal语言函数集(含Delphi控件属性)abort 函数引起放弃的意外处理abs 函数绝对值函数addexitproc 函数将一过程添加到运行时库的结束过程表中 addr 函数返回指定对象的地址adjustlinebreaks函数将给定字符串的行分隔符调整为cr/lf序列align 属性使控件位于窗口某部分alignment 属性控件标签的文字位置 allocmem 函数在堆栈上分配给定大小的块 allowgrayed 属性允许一个灰度选择ansicomparestr 函数比较字符串(区分大小写) ansicomparetext 函数比较字符串(不区分大小写) ansilowercase 函数将字符转换为小写ansiuppercase 函数将字符转换为大写append 函数以附加的方式打开已有的文件 arctan 函数余切函数assignfile 函数给文件变量赋一外部文件名 assigned 函数测试函数或过程变量是否为空 autosize 属性自动控制标签的大小backgrounddi2001.jpg 属性背景色beginthread 函数以适当的方式建立用于内存管理的线程 bevelinner 属性控件方框的内框方式bevelouter 属性控件方框的外框方式bevelwidth 属性控件方框的外框宽度 blockread 函数读一个或多个记录到变量中 blockwrite 函数从变量中写一个或多个记录 borderstyle 属性边界类型borderwidth 属性边界宽度break 命令终止for、while、repeat循环语句 brush 属性画刷caption 属性标签文字的内容changefileext 函数改变文件的后缀chdir 函数改变当前目录checked 属性确定复选框选中状态chr 函数返回指定序数的字符closefile 命令关闭打开的文件color 属性标签的颜色columns 属性显示的列数comparestr 函数比较字符串(区分大小写) concat 函数合并字符串continue 命令继续for、while、repeat的下一个循环 copy 函数返回一字符串的子串cos 函数余弦函数ctl3d 属性是否具有3d效果cursor 属性鼠标指针移入后的形状date 函数返回当前的日期datetimetofiledate函数将delphi的日期格式转换为dos的日期格式datetimetostr 函数将日期时间格式转换为字符串 datetimetostring 函数将日期时间格式转换为字符串 datetostr 函数将日期格式转换为字符串dayofweek 函数返回星期的数值dec 函数递减变量值decodedate 函数将日期格式分解为年月日 decodetime 函数将时间格式分解为时、分、秒、毫秒 delete 函数从字符串中删除子串deletefile 命令删除文件diskfree 函数返回剩余磁盘空间的大小 disksize 函数返回指定磁盘的容量 dispose 函数释放动态变量所占的空间 disposestr 函数释放字符串在堆栈中的内存空间 ditherbackgrounddi2001.jpg?使背景色的色彩加重或减少50%dragcursor 属性当鼠标按下时光标的形状 dragmode 属性按动的作用方式dropdowncount 属性容许的显示数据项的数目 editmask 属性编辑模式enabled 属性是否使标签呈现打开状态 encodedate 函数将年月日合成为日期格式 encodetime 函数将时、分、秒、毫秒合成为时间格式endmargin 属性末尾边缘eof 函数对有类型或无类型文件测试是否到文件尾 eoln 函数返回文本文件的行结束状态erase 命令删除外部文件exceptaddr 函数返回引起当前意外的地址 exclude 函数从集合中删除一些元素 exceptobject 函数返回当前意外的索引 exit 命令立即从当前的语句块中退出 exp 函数指数函数expandfilename 函数返回包含绝对路径的字符串 extendedselect 属性是否允许存在选择模式,true时,multiselect才有意义extractfiledir 函数返回驱动器和路径 extractfileext 函数返回文件的后缀 extractfilename 函数返回文件名extractfilepath 函数返回指定文件的路径 fileage 函数返回文件已存在的时间 fileclose 命令关闭指定的文件filecreate 命令用指定的文件名建立新文件 filedatetodatetime 函数nbsp;将dos的日期格式转换为delphi的日期格式fileexists 函数检查文件是否存在filegatattr 函数返回文件的属性filegetdate 函数返回文件的dos日期时间标记 fileopen 命令用指定的存取模式打开指定的文件 filepos 函数返回文件的当前指针位置 fileread 命令从指定的文件读取filesearch 命令在目录中搜索指定的文件 fileseek 函数改变文件的指针filesetattr 函数设置文件属性filesetdate 函数设置文件的dos日期时间标记 filesize 函数返回当前文件的大小filewrite 函数对指定的文件做写操作 fillchar 函数用指定的值填充连续字节的数 findclose 命令终止findfirst/findnext序列 findfirst 命令对指定的文件名及属性搜索目录 findnext 命令返回与文件名及属性匹配的下一入口floattodecimal 函数将浮点数转换为十进制数 floattostrf 函数将浮点数转换为字符串 floattostr 函数将浮点数转换为字符串floattotext 函数将给定的浮点数转换为十进制数 floattotextfmt 函数将给定的浮点数转换为十进制数 flush 函数将缓冲区的内容刷新到输出的文本文件中 fmtloadstr 函数从程序的资源字符串表中装载字符串 fmtstr 函数格式化一系列的参数,其结果以参数 result 返回 font 属性设置字体format 函数格式化一系列的参数并返回pascal字符串 formatbuf 函数格式化一系列的参数formatdatetime函数用指定的格式来格式化日期和时间 formatfloat 函数指定浮点数格式frac 函数返回参数的小数部分freemem 函数按给定大小释放动态变量所占的空间 getdir 返回指定驱动器的当前目录getheapstatus 返回内存管理器的当前状态 getmem 建立一指定大小的动态变量,并将指针指向该处 getmemorymanager 返回内存管理器的入口点 glyph 函数按钮上的图象halt 停止程序的执行并返回到操作系统hi 返回参数的高地址位high 返回参数的上限值hint 属性提示信息int 返回参数的整数部分include 添加元素到集合中insert 在字符串中插入子串inttohex 将整型数转换为十六进制数inttostr 将整型数转换为字符串ioresult 返回最新的i/o操作完成状态 isvalidident 测试字符串是否为有效的标识符 items 属性默认显示的节点kind 属性摆放样式largechange 属性最大改变值layout 属性图象布局length 函数返回字符串的动态长度lines 属性缺省显示内容ln 函数自然对数函数lo 函数返回参数的低地址位loadstr 函数从应用程序的可执行文件中装载字符资源lowercase 函数将给定的字符串变为小写 low 函数返回参数的下限值 max 属性最大值 maxlength 属性最大长度 min 属性最小值 mkdir 命令建立一子目录move 函数从源到目标复制字节multiselect 属性允许同时选择几个数据项 name 属性控件的名字new 函数建立新的动态变量并设置一指针变量指向它 newstr 函数在堆栈上分配新的字符串 now 函数返回当前的日期和时间odd 测试参数是否为奇数onactivate 事件焦点移到窗体上时触发 onclick 事件单击窗体空白区域触发 ondblclick 事件双击窗体空白区域触发 onclosequery 事件使用者试图关闭窗体触发 onclose 事件窗体关闭后才触发oncreate 事件窗体第一次创建时触发 ondeactivate 事件用户切换到另一应用程序触发 ondragdrop 事件鼠标拖放操作结束时触发 ondragover 事件有其他控件从他上面移过触发 onmousedown 事件按下鼠标键时触发 onmouseup 事件释放鼠标键时触发onmousemove 事件移动鼠标时触发onhide 事件隐藏窗体时触发onkeydown 事件按下键盘某键时触发 onkeypress 事件按下键盘上的单个字符键时触发 onkeyup 事件释放键盘上的某键时触发 onpaint 事件窗体上有新部分暴露出来触发 onresize 事件重新调整窗体大小触发 onshow 事件在窗体实际显示之前瞬间触发 ord 返回序数类的序数outlinestyle 属性类型outofmemoryerror 引起outofmemory 意外pageindex 属性页索引pages 属性页paramcount 函数返回在命令行上传递给程序的参数数量paramstr 函数返回指定的命令行参数 pen 属性画刷设置pi 函数返回圆周率pipicture 属性显示图象pictureclosed 属性设置closed位图 pictureleaf 属性设置leaf位图pictureminus 属性设置minus位图 pictureopen 属性设置open位图pictureplus 属性设置plus位图pos 函数在字符串中搜索子串pred 函数返回先前的参数random 函数返回一随机函数randomize 函数用一随机数初始化内置的随机数生成器 read 函数对有格式的文件,读一文件组件到变量中;对文本文件,读一个或多个值到一个或多个变量中readln 函数执行read过程,然后跳到文件下一行 readonly 属性只读属性reallocmem 函数分配一动态变量rename 函数重命名外部文件renamefile 函数对文件重命名reset 函数打开已有的文件rewrite 函数建立并打开一新的文件rmdir 函数删除空的子目录round 函数将实数值舍入为整型值runerror 函数停止程序的执行scrollbars 属性滚动条状态seek 函数将文件的当前指针移动到指定的组件上 seekeof 函数返回文件的文件结束状态seekeoln 函数返回文件的行结束状态selectedcolor 属性选中颜色setmemorymanager 函数设置内存管理器的入口点 settextbuf 函数给文本文件指定i/o缓冲区 shape 属性显示的形状showexception 函数显示意外消息与地址 sin 函数正弦函数sizeof 函数返回参数所占的字节数smallchange 属性最小改变值sorted 属性是否允许排序sqr 函数平方函数sqrt 函数平方根函数startmargin 属性开始边缘state 属性控件当前状态str 函数将数值转换为字符串stralloc 函数给以null结束的字符串分配最大长度-1的缓冲区 strbufsize 函数返回存储在由stralloc分配的字符缓冲区的最大字符数strcat 函数将一字符串附加到另一字符串尾并返回合并的字符串strcomp 函数比较两个字符串strcopy 函数将一个字符串复制到另一个字符串中 strdispose 函数释放堆栈上的字符串strecopy 函数将一字符串复制到另一个字符串并返回结果字符串尾部的指针strend 函数返回指向字符串尾部的指针stretch 属性自动适应控件的大小strfmt 函数格式化一系列的参数stricomp 函数比较两个字符串(不区分大小写) stringtowidechar 函数将ansi字符串转换为unicode字符串 strlcat 函数将一字符串中的字符附加到另一字符串尾并返回合并的字符串strlcomp 函数以最大长度比较两个字符串 strlcopy 函数将一个字符串中的字符复制到另一个字符串中strlen 函数返回字符串中的字符数strlfmt 函数格式化一系列的参数,其结果中包含有指向目标缓冲区的指针strlicomp 函数以最大长度比较两个字符串(不区分大小写) strlower 函数将字符串中的字符转换为小写strmove 函数将一个字符串中的字符复制到另一个字符串中 strnew 函数在堆栈上分配一个字符串strpas 函数将以null结束的字符串转换为pascal类的字符串 strpcopy 函数将pascal类的字符串复制为以null结束的字符串 strplcopy 函数从pas cal类的最大长度字符串复制为以null结束的字符串 strpos 函数返回一个字符串在另一个字符串中首次出现指针 strrscan 函数返回字符串中最后出现字符的指针 strscan 函数返回字符串中出现首字符的指针strtodate 函数将字符串转换为日期格式strtodatetime 函数将字符串转换为日期/时间格式 strtofloat 函数将给定的字符串转换为浮点数strtOInt 函数将字符串转换为整型strtOIntdef 函数将字符串转换为整型或默认值strtotime 函数将字符串转换为时间格式strupper 函数将字符串中的字符转换为大写style 属性类型选择suce 函数返回后继的参数swap 函数交换参数的高低地址位tabs 属性标记每一项的内容tabindex 属性标记索引text 属性显示的文本texttofloat 函数将字符串(以null结束的格式)转换为浮点数 time 函数返回当前的时间timetostr 函数将时间格式转换为字符串trim 函数从给定的字符串中删除前导和尾部的空格及控制字符 trimleft 函数从给定的字符串中删除首部的空格及控制字符 trimright 函数从给定的字符串中删除尾部的空格及控制字符 trunc 函数将实型值截取为整型值truncate 函数截去当前文件位置后的内容unselectedcolor 属性未选中颜色upcase将字符转换为大写uppercase 将给定的字符串变为大写val 函数将字符串转换为整型值vararraycreate 函数以给定的界限和维数建立变体数组 vararraydimcount 函数返回给定变体的维数vararrayhighbound 函数返回给定变体数组维数的上界 vararraylock 函数锁定给定的变体数组vararraylowbound 函数返回给定变体数组维数的下界 vararrayof 函数返回指定变体的数组元素vararrayredim 函数通过改变上限来调整变体的大小 vararrayunlock 函数解锁指定的变体数组varastype 函数将变体转换为指定的类型varcase 函数将变体转换为指定的类型并保存它varclear 函数清除指定的变体varcopy 函数将指定的变体复制为指定的变体varformdatetime 函数返回包含日期时间的变体varisarray 函数测试变体是否为数组varisempty 函数测试变体是否为unassignedvarisnull 函数测试变体是否为nullvartodatetime 函数将给定的变体转换为日期时间vartype 函数将变体转换为指定的类型并保存它visible 属性控件的可见性wantreturns 属性为true时,按回车键产生一个回车符;为false时,按下ctrl+enter才产生回车符write 命令对有格式的文件,写一变量到文件组件中;对文本文件,写一个或多个值到文件中 writeln 命令执行write过程,然后输出一行结束标志widecharlentostring 函数将ansi字符串转换为unicode字符串widecharlentostrwar 函数将unicode字符串转换为ansi字符串变量widechartostring 函数将unicode字符串转换为ansi字符串widechartostrvar 函数将unicode字符串转换为ansi字符串变量自然对数:以e为底的对数,称自然对数~e 的一个定义是:如果级数1 + 1/1! + 1/2! + 1/3! + 1/4! + ... + 1/(n-1)! + ....是收敛的,我们就把他的和记做 e ;e 这个符号是欧拉在1727年首先引进的。
PASCAL常用的字符串函数解读
PASCAL常用的字符串函数求长度length定义:function Length(S: String): Integer;复制子串copy定义:function Copy(S: String; Index: Integer; Count: Integer): String;注意:S 是字符串类型的表达式。
Index和Count是整型表达式。
Copy 返回S中从Index 开始,Count个字符长的一个子串。
例子:var S: String;beginS := 'ABCDEF';S := Copy(S, 2, 3); { 'BCD' }end.插入子串insert定义:procedure Insert(Source: String; var S: String; Index: Integer);注意:Source 是字符串类型的表达式。
S 是任意长度字符串类型变量。
Index 是整型表达式。
Insert 把Source插在S中Index处。
如果结果字符串的长度大于255,那么255之后的字符将被删除。
例子:varS: String;beginS := 'Honest Lincoln';Insert('Abe ', S, 8); { 'Honest Abe Lincoln' }end.删除子串delete定义:procedure Delete(var S: String; Index: Integer; Count:Integer);注意:S 是字符串类型变量。
Index和Countare是整型表达式。
Delete 删除S中从Index 开始的Count个字符。
如果Index大于S的长度,则不删除任何字符;如果Count大于S 中从Index开始的实际字符数,则删除实际的字符数。
例子:vars: string;begins := 'Honest Abe Lincoln';Delete(s,8,4);Writeln(s); { 'Honest Lincoln' }Delete(s,9,10);Writeln(s); { 'Honest L' }end.字符串转为数值val定义: procedure Val(S; var V; var Code: Integer);在这里:S 是由一系列数字字符构成的字符串类型变量;。
pascal常用函数(较全)
pascal函数PASCAL内自带的函数,通常可以直接调用,特殊的需要调用数据库,如:used math 目录一、数学函数与过程二、字符串函数与过程三、标准函数四、各单元的函数与过程展开一、数学函数与过程过程:inc(i) 使i:=i+1;inc(i,b) 使i:=i+b;dec(i) 使i:=i-1;dec(i,b) 使i:=i-b;randomize 随机数的种子函数,在每次设置随机数时都要把这个函数放在最前面。
函数:abs(x) 求x的绝对值。
例:abs(-3)=3 x为整数chr(x) 求编号x对应的字符。
例:chr(65)='A' chr(97)='a'chr(48)='0' x为非负整数ord(x) 求字符x对应的编号。
例:ord(‘A')=65 ord(‘a')=97 另外:ord(false)=0 ord(true)=1 x为字符或数字或布尔量sqr(x) 求x的平方。
例:sqr(4)=16 x为整数sqrt(x) 求x的正根。
例:sqrt(16)=4 (ps:负数是不能进行运算的,如果需要就要先取绝对值:sqrt(-4)是错的,应该为sqrt(abs(-4))结果为实数round(x) 求x的四舍五入。
例:round(4.5)=5 x实数trunc(x) 求x的整数部分。
例:trunc(5.6)=5 结果是integer型 x为实数int(x) 求x的整数部分。
例:int(5.6)=5.0 结果是real型 x为实数 frac (x) 求x的小数部分。
例:frac(5.6)=0.6 x为实数pred(x) 求x的前导。
例:pred(‘b')='a' pred(5)=4pred(true)=false x为字符或数字或布尔量succ(x) 求x的后继。
例:succ(‘b')='c' succ(5)=6succ(false)=true x为字符或数字或布尔量odd(x) 判断x是否为奇数。
Pascal常用的字符串处理标准函数
Pascal常用的字符串处理标准函数有7个:设变量s,str,str1,str2均为字符串类型(string){多个字符};ch为字符类型(char){单个字符};(1)copy(str,n,m)从字符串str的左边第n个开始截取m个字符;如:copy(,3,2)的结果为;(2)concat(str1,str2)将两个字串连接成为一个新的字串;如:s:=str1+str2;同等于两串字符相加(3)Length(str)求字串str的长度(字符个数);(4)chr(x) 求x(x为1…255整数)的ASII代码对应的字符;如:chr(65)结果为'A'。
(5)ord(ch)求字符ch对应的ASCII代码值;如ord ( 'A' )结果为65;(6)pos(str1,str2)求字串str1在字串中开始的位置;如: pos('sca','pascal')结果为3;(7)upcase(ch)将字符ch转为大写字母,如upcase( 'a' )结果为'A' ;Pascal常用的字符串处理标准过程有4个:(1)Val(str,x,code)将数字型字串转为数字并存入变量x中;如:Val(‘768’,x,code),x值为768,code为检测错误代码,若code=0表示没有错误;(2)str(n,s)将数字n转化为字串存入s中,如str(768,s)s的结果为' 768' ;(3)insert(str1,str2,n)把字串str1插入在字串str2的第n个字符之前,结果在str2中;{此过程中的str2为变量形参,具有传入传出的功能};(4)delete(str,n,m)从字串str的第n个开始,删除m个字符,把剩余的字符存在str中,{此过程中的str为变量形参,具有传入传出的功能};。
pascal语言中字符串操作
字符串类型在Borland公司的Turbo Pascal和16位Delphi中,传统的字符串类型是一个字符序列,序列的头部是一个长度字节,指示当前字符串的长度。
由于只用一个字节来表示字符串的长度,所以字符串不能超过255个字符。
这一长度限制为字符串操作带来不便,因为每个字符串必须定长(确省最大值为255),当然你也可以声明更短的字符串以节约存储空间。
字符串类型与数组类型相似。
实际上一个字符串差不多就是一个字符类型的数组,因为用[]符号,你就能访问字符串中的字符,这一事实充分说明了上述观点。
为克服传统Pascal 字符串的局限性,32位Delphi增加了对长字符串的支持。
这样共有三种字符串类型:∙ShortString 短字符串类型也就是前面所述的传统 Pascal 字符串类型。
这类字符串最多只能有255个字符,与16位Delphi中的字符串相同。
短字符串中的每个字符都属于ANSIChar 类型(标准字符类型)。
∙ANSIString长字符串类型就是新增的可变长字符串类型。
这类字符串的内存动态分配,引用计数,并使用了更新前拷贝(copy-on-write)技术。
这类字符串长度没有限制(可以存储多达20亿个字符!),其字符类型也是ANSIChar 类型。
∙WideString 长字符串类型与ANSIString 类型相似,只是它基于WideChar 字符类型,WideChar 字符为双字节Unicode 字符。
使用长字符串如果只简单地用String定义字符串,那么该字符串可能是短字符串也可能是ANSI长字符串,这取决于$H 编译指令的值,$H+(确省)代表长字符串(ANSIString 类型)。
长字符串是Delphi 库中控件使用的字符串。
Delphi 长字符串基于引用计数机制,通过引用计数追踪内存中引用同一字符串的字符串变量,当字符串不再使用时,也就是说引用计数为零时,释放内存。
如果你要增加字符串的长度,而该字符串邻近又没有空闲的内存,即在同一存储单元字符串已没有扩展的余地,这时字符串必须被完整地拷贝到另一个存储单元。
Pascal中的常用字符串函数
1. 连接运算concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.例:concat(‘11’,’aa’)=’11aa’;2. 求子串。
Copy(s,I,L) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’3. 删除子串。
过程Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’4. 插入子串。
过程Insert(s1,s2,I) 把s1插入到s2的第I个位置例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’5. 求字符串长度length(s) 例:length(‘12abc’)=56. 搜索子串的位置pos(s1,s2) 如果s1是s2的子串,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0.例:pos(‘ab’,’12abcd’)=37. 字符的大写转换。
Upcase(ch) 求字符ch的大写体。
例:upcase(‘a’)=’A’8. 数值转换为数串。
过程Str(x,s) 把数值x化为数串s.例:str(12345,s); 结果s=’12345’9. 数串转换为数值。
过程val(s,x,I) 把数串s转化为数值x,如果成功则i=0,不成功则I为无效字符的序数例:val(‘1234’,x,I);结果x:=1234求长度length定义:function Length(S: String): Integer;例子:varS: String;beginReadln (S);Writeln('"', S, '"');Writeln('length = ', Length(S));end.复制子串copy定义:function Copy(S: String; Index: Integer; Count: Integer): String;注意:S 是字符串类型的表达式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Pascal常用的字符串处理标准函数有7个:
设变量s,str,str1,str2均为字符串类型(string){多个字符};ch为字符类型(char){单个字符};
(1)copy(str,n,m)从字符串str的左边第n个开始截取m个字符;
如:copy('Pascal',3,2)的结果为'sc';
(2)concat(str1,str2)将两个字串连接成为一个新的字串;
如:s:=str1+str2;同等于两串字符相加
(3)Length(str)求字串str的长度(字符个数);
(4)chr(x)求x(x为1…255整数)的ASII代码对应的字符;
如:chr(65)结果为'A'。
(5)ord(ch)求字符ch对应的ASCII代码值;如ord('A')结果为65;
(6)pos(str1,str2)求字串str1在字串中开始的位置;
如:pos('sca','pascal')结果为3;
(7)upcase(ch)将字符ch转为大写字母,如upcase('a')结果为'A';
Pascal常用的字符串处理标准过程有4个:
(1)Val(str,x,code)将数字型字串转为数字并存入变量x中;
如:Val(‘768’,x,code),x值为768,code为检测错误代码,若code=0表示没有错误;(2)str(n,s)将数字n转化为字串存入s中,如str(768,s)s的结果为'768';
(3)insert(str1,str2,n)把字串str1插入在字串str2的第n个字符之前,结果在str2中;{此过程中的str2为变量形参,具有传入传出的功能};
(4)delete(str,n,m)从字串str的第n个开始,删除m个字符,把剩余的字符存在str中,{此过程中的str为变量形参,具有传入传出的功能};。