关于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】这个题主是在哪里看到的?建议相关资料从微软的官方渠道了解比较准确靠谱。

关于vb中InStr函数的一个小问题
是你自己理解错了!从来就没有start > string2的说法!只有说如果start大于String1的长度就返回0。这个其实也很容易理解:如果一个字符串的长度是10,但查找的起始位置却大于10,那肯定是找不到任何东西的啦!返回0就表示没有找到的意思,你的程序中只要判断返回值是否为0就可以判断String2是否包含在St...

关于VB Instr 问题
instr是在用于确定一字符串在另一字符串的位置的一个函数.用这个来提取文件名,前提是你已知道文件名,你既然知道还提取他干什么?用楼上提到的right函数吧,根据字符串中从右向左出现的第一个"\\"的位置来截取.

VB Instr()错误统计的问题
如果元素值等于11,则输出11的位置并退出循环。修改等式条件为要搜索的数字,调整输出内容为该数字的位置。循环完成,得到答案。

instr函数问题 vb
a%:a是一个integer变量 instr:返回一个字符在另一个字符串中第一次出现的位置 Combo2.Text:Combo2是一个"复合框",Text属性就是这个复合框的文本 整个语句的意思就是:把逗号(",")在复合框里出现的第一个位置赋值给a这个变量.

VB中关于InStr的困惑?
查找关键词在字符串里的位置。假如Text4.Text的Text内容是“Don't worry.I'm OK now.”那么,InStr(1, Text4.Text, " OK")返回的值就是16 因为" OK"在"Don't worry.I'm OK now."的位置(从第一字数起)是第十六位。自己数一数。InStr(<起始位置>,<要搜索的字符串>,<要搜索的关键...

vb 关于instr函数的问题,看糊涂了
Len(ss) - InStrRev(ss, "上海")Len(ss)是取ss的长度。长度减去从左开始的位置不就得到从右边数的位置了

vb的instr的用法?
InStr([start, ]string1, string2[, compare])其中:start:设置开始查找的位置,可以省略,省略时默认从第一个字符开始查找,string1是源字符 string2可以说是关键字 最后一个compare别管他啥2进制,一般找字符串就理解为是否区分大小写,如你的例题,返回6的那句,把他的值设为1,就是不区分大小...

关于VB6.0中instr函数的使用问题
Option Compare 语句为模块指定字符串比较的方法(Binary、Text 或 Database)。如果模块中没有 Option Compare 语句,则缺省的文本比较方法是 Binary。Option Compare Binary 是根据字符的内部二进制表示而导出的一种排序顺序来进行字符串比较。在 Microsoft Windows 中,排序顺序由代码页确定。典型的二进制...

关于VB6.0中instr函数的使用问题
str("459")和str(459)没有区别,系统把"459"转成 数字459处理 str函数会加一个前导空格所以多了一位.你可以删除左边的空格,用函数ltrim()可以实现:ltrim(str(459)),这样len(ltrim(str(459)))你会发现结果是3 你能发现这个说明你对vb很有兴趣,加油吧~采纳我~~忽忽~~...

关于VB Instr 问题
Public Function GetFileNameFromPath(ByVal strFullPath As String, Optional ByVal strSplitor As String = "\\") As String GetFileNameFromPath = Right$(strFullPath, Len(strFullPath) - InStrRev(strFullPath, strSplitor, , vbTextCompare))End Function 上面这个是自己写的函数, 你把它拷...

相似回答