关于vb中InStr函数的一个小问题

InStr函数语法如下:

InStr([start, ]string1, string2[, compare])
在该函数的返回值中有这么一项:

如果start > string2 ,那么该函数返回0
问题:就是start参数是数值表达式,那么应该是一个数值,而string2参数是一个字符串表达式,它们俩可以进行比较吗?返回0的意义是什么呢?
求高手指导,拜托啦!
谢谢大家的回答,我是在MSDN上看到这个说法的,截图如下:

难道是微软印错了?版本是MSDN6.0

是你自己理解错了!从来就没有start > string2的说法!只有说如果start大于String1的长度就返回0。这个其实也很容易理解:如果一个字符串的长度是10,但查找的起始位置却大于10,那肯定是找不到任何东西的啦!
返回0就表示没有找到的意思,你的程序中只要判断返回值是否为0就可以判断String2是否包含在String1中。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-15
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 因为一个是数字,一个是字符串,比较式不成立!!!!本回答被提问者采纳
第2个回答  2013-10-10
start:可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了
compare 参数,则一定要有 start 参数。
string1:必要参数。接受搜索的字符串表达式。
string2:必要参数。被搜索的字符串表达式。
compare:可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略
compare,Option Compare 的设置将决定比较的类型。

从 Start 位置开始,在 String1 中寻找 String2 ,如果没有找到,则返回0。如果 String1 或
String2 为Null,则返回Null,其他情况返回 String2 在 String1 中的起始位置。

不知道【如果start > string2 ,那么该函数返回0】这个题主是在哪里看到的?建议相关资料从微软的官方渠道了解比较准确靠谱。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网