pascal中的xor,shr,shl,Int(),ArcTan(),copy,delete,pos和leftstr,RightStr等详解
数学函数: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)=0ord(true)=1Sqr(x)求x的平方。
例:sqr(4)=16Sqrt(x)求x的开方.例:sqrt(16)=4round(x)求x的四舍五入
delphi中的copy,delete,pos和leftstr,RightStr的用法
copy举个例子:str:=“123456”;str1:=Copy(Str,2,3);结果就是str1等于234。
Copy有3个参数,第一个是你要处理的字符串,第二个是你要截取的开始位置,第3个是截取位数。
当你的第3个参数大于字符长度,那么效果就是取开始位置后的所有字符。
str1:=Copy(Str,2,10);结果就是str1等于23456。leftstr和pos假设字符串是S:=’Del
leftstr和pos
假设字符串是 S := ’Delphi is the BEST’, 那么
LeftStr(S, 5) := ’Delph’ //即S前5位字符
MidStr(S, 6, 7) := ’i-is-th’// 即s的第六位开始后面7个字符(-:=空格)
RightStr(S, 6) := ’e-BEST’//即S后面的字符(-:=空格)
取出子串在父串中第一次出现的位置
例如
pos('b','abcd');
返回结果是2//pos就是显示B在整个字符中排第几位
delete
列子:
var
S: string;
begin
S := '12345';
Delete(S, 2, 2);
ShowMessage(S);//显示 145 即删除 23.即是删掉S的第二位开始的2个字符。
end;
一、数学函数: Inc(i) 使I:=I+1; Inc(I,b) 使I:=I+b; Abs(x) 求x的绝对值 例:abs(-3)=3 Chr(x) 求编号x对应的字符。例:Chr(65)=’A’ chr(97)=’a’ chr(48)=’0’ Ord(x) 求字符x对应的编号。例:ord(‘A’)=65 ord(‘a’)=97 另外:ord(false)=0 ord(true)=1 Sqr(x) 求x的平方。 例:sqr(4)=16 Sqrt(x)求x的开方. 例:sqrt(16)=4 round(x) 求x的四舍五入 例:round(4.5)=5 trunc(x) 求x的整数部分 例:trunc(5.6)=5 结果是integer型 int(x) 求x的整数部分 例int(5.6)=5.0 结果是real型 frac (x)求x的小数部分 例 frac(5.6)=0.6 pred(x) 求x的前导 pred(‘b’)=’a’ pred(5)=4 pred(true)=false succ(x) 求x的后继 succ(‘b’)=’c’ succ(5)=6 succ(false)=true odd(x) 判断x是否为奇数。如果是值为true,反之值为false. Odd(2)=false odd(5)=true power(a,n) 求a的n次方 power(2,3)=8 random 取0~1之间的随机数(不能取到1) randomize 随机数的种子函数,在每次设置随机数时都要把这个函数放在最前面. Fillchar(a,size(a),0) 数组初始化,即把数组a的值全部置为0 SHR: x SHR n 把x换成二进制后向右移n位,相当于 把x 除以 2n SHL: x SHL n把x换成二进制后向左移n位,相当于 把x 乘以 2n
二、字符串函数 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’)=5 6. 搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0. 例:pos(‘ab’,’12abcd’)=3 7. 字符的大写转换。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