鱼C论坛

 找回密码
 立即注册
查看: 4804|回复: 1

[学习笔记] 基本数据类型与表达式06 - 零基础入门学习Delphi007

[复制链接]
发表于 2017-6-16 21:31:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这一讲主要是字符串函数。
字符串在计算机系统内实际上后面还跟着一个”\0”,只不过我们观察不到,计算字符串长度等运算时也不计这个”\0”
主要字符串函数如下
  
函数
  
说明
参数类型
返回值类型
LowerCase(s)
小写函数,返回s的小写状态
常数 String
String
UpperCase(s)
大写函数返回s的大写状态
常数 String
String
CompareStr(s1, s2)
比较函数,依次比较两个字符串的每个字符的ascii的大小,直至能比较出大小,返回这轮比较的字符ascii差值,如到最后仍不能比出大小,则返回0
两个都是常数 String
Integer
CompareText(s1, s2)
比较函数,与CompareStr类似,但不考虑字符串的大小写
两个都是常数 String
Integer
Length(s)
字符串长度函数,返回字符串的长度,中文字符算2
String
Integer
Pos(s1, s2)
字符串位置函数,返回s1s2中首次出现的位置,注意位置从1开始计,若找不到返回0
String
Integer
AppendStr(s1, s2)
合并字符串过程,将s1 + s2赋值给s1,但比加法运算速度快
S1Strings2为常数String
过程没有返回值
Copy(str, m, n)
截取子字符串函数,截取str的从位置m开始长度为n子字符串,如果m大于字符串长度返回’’,如果m + n大于字符串长度,则返回从m到字符串结尾的子字符串
Strstring, m, nInteger
String
Delete(str, m, n)
删除子字符串过程,将字符串str从位置m开始删除n个字符,如果m大于字符串长度则不删除,如果m + n大于字符串长度,则到字符串结尾,如果n<=0,则不删除
Strstring, m, nInteger
过程没有返回值
Insert(str1, str, k)
插入子字符串过程,将子字符串str1插入到字符串str的第k个位置,如果k大于字符串长度则插到最后
Str1strstring, kInteger
过程没有返回值
LowerCase等函数的参数为常数的字符串,这个我不是很理解,难道强调其不可改变,这个是形参呀。
Length的参数帮助中说可以是string,也可以是数组。
Copy的参数Str可以是string,也可以是数组,返回值也是。注意mn不要截取到半个汉字,否则会将前一个汉字的后半截ascii码和后一个汉字的前半截ascii码重新组成一个新汉字,得到莫名其妙的结果,如Copy('汉字字符', 2, 6)返回鹤肿址,所以说delphi对汉字或者说对unicode的支持还是不理想的。
一个过程都没有返回值,但仍将结果通过参数“返回”给变量了。这是delphi的实参的形式起作用。
还有几个我们都很熟悉了,就不在表中列出了:IntToStr, StrToInt, FloatToStr, StrToFloat
下面编写个小程序,输入一个字符串,得到它的长度和全大写全小写。程序很简单,只是用到了一个新的事件过程,ChangeEditChange事件是当它的text有改变时引发的。
1.jpg
procedure TForm1.Edit1Change(Sender: TObject);
begin
  Edit2.Text := IntToStr(Length(Edit1.Text));
  Edit3.Text := UpperCase(Edit1.Text);
  Edit4.Text := LowerCase(Edit1.Text);
end;


评分

参与人数 1鱼币 +6 收起 理由
小甲鱼 + 6 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-13 22:24:41 | 显示全部楼层
特别是COPY DEL,  INSERT, 真不错. 谢谢楼主的笔记...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 20:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表