求解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)的结果是“考试”两个字。因此整句的结果是计算机考试。
相似回答