InStr函数语法如下:InStr([start, ]string1, string2[, compare])在该函数的返回值中有这么一项:如果start > string2 ,那么该函数返回0问题:就是start参数是数值表达式,那么应该是一个数值,而string2参数是一个字符串表达式,它们俩可以进行比较吗?返回0的意义是什么呢?求高手指导,拜托啦!谢谢大家的回答,我是在MSDN上看到这个说法的,截图如下:难道是微软印错了?版本是MSDN6.0
2 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
是你自己理解错了!从来就没有start > string2的说法!只有说如果start大于String1的长度就返回0。这个其实也很容易理解:如果一个字符串的长度是10,但查找的起始位置却大于10,那肯定是找不到任何东西的啦!
返回0就表示没有找到的意思,你的程序中只要判断返回值是否为0就可以判断String2是否包含在String1中。
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
InStr 函数是指定一个字符串在另一个字符串中最先出现的位置。
语法:InStr([start,]string1,string2[,compare])
其中:start:可选参数,数字,设置搜索的起点,如果省略,从第一个字符开始搜索。
string1:必要参数,被搜索的字符串。
string2:必要参数,需要搜索的字符串。
compare:可选参数。
compare的参数设置:-1:
0:二进制比较
1:执行原文的比较
2:在Access数据库中执行比较。
例如:A=InStr(2,"ABCDEFG","E"),返回值:5
你的问题是没有高清楚 start 是设置搜索的起点,如果 start > Len(string2),那么返回值是0,而不是 start > string2 因为一个是数字,一个是字符串,比较式不成立!!!!
添加回答
举报
0/150
提交
取消
