delphi中的pos函数 ,是字符串处理中经常要使用到的一个常用函数。他的作用是返回目标字符在字符串中的位置,返回值为integer型,查看帮助文件得知 pos函数 在System单元声明及定义的。我们先来看一下pos函数的声明是什么样子的。 function Pos(Substr: stri...
delphi中的pos函数,是字符串处理中经常要使用到的一个常用函数。他的作用是返回目标字符在字符串中的位置,返回值为integer型,查看帮助文件得知pos函数在System单元声明及定义的。我们先来看一下pos函数的声明是什么样子的。
pos函数有2个参数,第一个参数Substr是要查询的字符,类型为string,第二个参数S为要在哪个字符串中进行查询,也就是目标字符串,也是一个string类型的变量。pos函数的返回值是一个integer类型的值,表示要查询的字符在目标字符串中的位置。
下面我们来编程实现以下这个功能,新建一个应用程序,添加3个edit控件和一个按钮。设置form1的caption属性为“pos函数实现查询字符的位置”。设置按钮的caption属性为“得到字符的位置”。双击按钮控件进入代码页编辑按钮的click事件,代码如下:
好了,代码部分已经完成了,如果你想判断edt3和edt1的text属性是否为空,如果为空的话提示用户输入或警告,这个可以自己添加一个判断来实现,比如:
下面我们在第一行输入字符串“abcdefg”,在第二行输入字符“e”,然后点击“得到字符的位置”按钮。运行结果如下图:
我们看到在“字符的位置”后面的edit框里面会显示出“5”,结果是正确的,“e”在字符串“abcdefg”的位置确实是在第5位。
如果我们在第二行输入“ef”呢?结果还是“5”,说明pos函数也可以查询字符串在字符串的位置,返回的是要查询的字符串的首字符在目标字符串中的位置。
如果我们要查询的中文呢?下面我们来试一下,我们在第一行输入“村姑网”,第二行输入“姑”,运行后如图所示:
为什么输入中文的时候pos函数的返回值就不正确了呢?其实结果还是正确的,只是因为一个汉字占2个字符,所以“姑”字明明是第二个字,pos函数的返回值却是3的原因了。


