求解VFP中substr函数

?SUBSTR("中国首都",5)
这个解释下是什么意思。
还有?substr("全国计算机等级考试",5,6)+right("全国计算机等级考试",4)
这两个是怎么做到的?不太理解~求各位大虾解答~

substr(字符串,m,n) 函数是将字符串,从m位开始,取n个字符出来
substr("abcdef",3,2)="cd"
substr("abcdef",2,4)="bcde"
参数n可省略,表示从m位开始取到字符串末尾
substr("abcdef",3)="cdef"
汉字占两位
SUBSTR()函数
VFP字符函数的一种。表示的是字符型函数。格式是:SUBSTR(<字符表达式>、<数值表达式1>[,<数值表达式2>]
语法格式一
SUBSTR(cExpression,nStartPosition [,nCharactersReturned])
其中,cExpression指定要从其中返回字符串的字符表达式或备注字段;nStartPosition用于指定返回的字符串在字符表达式或备注字段中的位置,nCharactersReturned用于指定返回的字符数目,缺省时返回字符表达式的值结束前的全部字符。
举例
STORE'abcdefghijklm' To mystring
?SUBSTR(mystring ,1,5) 显示 "abcde"
?SUBSTR(mystring ,6) 显示 "fghijklm"
?SUBSTR(mystring,-2)显示"lm"
?SUBSTR(mystrng,-4)显示"jklm"、
语法格式二
SUBSTR(char A,char B,int C, int D)
这个函数主要用于字符串的运算,参数A是字符数组或是指向字符串的指针,用于接收字符串,参数B一般也为字符数组或指向字符串的指针,表示要截取字符串的地方,参数C表示从B中截取字符串的起始位置,参数D表示要截取字符串的长度,缺省时返回字符表达式的值结束前B的全部字符。
上述表达式功能可描述为:从字符串B的第C个字符处开始,截取长度为D的一串字符串,放入字符串数组A中,返回截取的字符串。
举例: ch X S[]="abcdefgh" 调用substr(X,S,4,2)后,得到的结果是:"ef"
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-06
substr(字符串,m,n) 函数是将字符串,从m位开始,取n个字符出来
substr("abcdef",3,2)="cd"
substr("abcdef",2,4)="bcde"
参数n可省略,表示从m位开始取到字符串末尾
substr("abcdef",3)="cdef"
汉字占两位追问

可以把那两个表达式解释下么。谢啦。

追答

SUBSTR("中国首都",5)="首都" &&从第5位开始取到末尾
substr("全国计算机等级考试",5,6)+right("全国计算机等级考试",4)
="计算机"+"考试" &&right()是取右边n个字符的函数
="计算机考试"

追问

谢啦。是我忘记汉字占两位了。

本回答被提问者采纳
第2个回答  2011-06-21
substr("全国计算机等级考试",5,6)的结果是“计算机”三个字;
+right("全国计算机等级考试",4)的结果是“考试”两个字。因此整句的结果是计算机考试。

求解VFP中substr函数
substr(字符串,m,n) 函数是将字符串,从m位开始,取n个字符出来 substr("abcdef",3,2)="cd"substr("abcdef",2,4)="bcde"参数n可省略,表示从m位开始取到字符串末尾 substr("abcdef",3)="cdef"汉字占两位 SUBSTR()函数 VFP字符函数的一种。表示的是字符型函数。格式是:SUBSTR(<字符表...

在VFP中,substr命令的使用方法。
start 必选。所需的子字符串的起始位置。字符串中第一个字符的索引为 0。length 可选项。返回的子字符串中包含的字符数。备注 如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到字符串的结尾。示例 下面的示例阐释了 substr 方法的用法。function SubstrDemo()...

vfp 字符串 求年数,月数
d3=substr(s1,14,2) ---31 或d2=right(s1,2)

我想问在VFP中字符串怎么进行截取
有substr这个函数有三个参数,第一个参数是字符串,第二参数是从第几位开始截取,第三个参数是截取字符串的长度比如subs(”重庆真没”,1,4)就等于重庆,一个汉子占两个字节,一个数字,字母和字符占一个,还有lift函数比较简单他有两个参数第一个是字符串,第二个是数值,就是从字符串的左边截取...

VFP中字段有效性的设置(满足位数要求的)
SUBSTR(学号, 1, 1) == "J" AND LEN(STRTRAN(学号, " ")) = 7 意思:1) 字段〔学号〕的首字符必须是"J";2) 去掉字段〔学号〕中所有空格(任意位置的空格)后的长度必须是7。两个条件同时满足方为合理(有效)。

vfp中输代码时,回车的代码是什么
Smxx=Thisform.Yseditbox1.Value If nKeyCode=13 AND LEN(ALLTRIM(Smxx))>10 Sm0=Smxx &&提取扫描信息 Sm=SUBSTR(Sm0, RAT(";", Sm0))Sm1=Right(Sm,LEN(SUBSTR(Sm0, RAT(";", Sm0)))-1)Sm0=Left(Sm0,LEN(Sm0)-LEN(Sm1)-1)Sm=SUBSTR(Sm0, RAT(";", Sm0))Sm2=Right(...

VFP中如何截取数段
你可以用函数 SUBSTR(cExpression, nStartPosition [, nCharatersReturned]),说明:〔cExpression〕:你要截取的原字符串;〔nStartPosition〕:起始位置;〔nCharatersReturned〕:截取多少个字符 如:?SUBSTR("3215", 1, 2)显:32 假设你的那个表的字段名叫〔进货地点〕,你敲上:SELECT SUBSTR(...

VFP REPLACE命令怎么实现替换某个字符型字段的其中一个字符呢?_百度知 ...
首先,完成你这个功能主要是用SUBSTR( ) 函数来解决,其次,“X为数字形式”必须是看起来像数字的字符串,请看下面:aa="S310-8"+SUBSTR("S310-XXXX",7)rple 学号 with aa 就可以了。至于80分以上用一个scan...endscan和if条件语句就能完成,时间关系不详细写了。

vfp中如何获得两字符之间的字符串?
Substr(a,n1[,n2]),n1从左开始的起始字符序号,n2是所含字符个数,可以省略,如果省略则到最后。但一般不规范。如果文本字段的格式是不规范的,可以先用定位子串位置命令,算出起始位置和字符长度,再用上述的取子字符串命令。定位子串位置命令:At(a,c2[,n])C2为要定位的子串,例如“市”、“区...

VFP.输入一串英文字母P(无论大小写)。如何统计某一个字母在其中出现的次...
其实没有这么麻烦。几句话就解决了 clear accept "请输入一串符" to p accept "请输入需要计算哪个字符出现的次数" to a ? "字符"+a+"出现的次数:", occurs(a,p)

相似回答