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
提交
取消