共找到2條詞條名為find函數的結果 展開
- 計算機函數
- Excel函數
find函數
Excel函數
find函數提供了一種對數組、STL容器進行查找的方法。
查找一定範圍內元素的個數。
查找[first,last)範圍內,與toval等價的第一個元素,返回一個迭代器。如果沒有這個元素,將返回last。
(Returns an iterator to the first element in the range [first,last) that compares equal toval. If no such element is found, the function returnslast.)
使用語法
FIND(find_text,within_text,start_num)
Find_text是要查找的字元串。
Within_text是包含要查找關鍵字的單元格。就是說要在這個單元格內查找關鍵字
Start_num指定開始進行查找的字元數。比如Start_num為1,則從單元格內第一個字元開始查找關鍵字。如果忽略start_num,則假設其為1。
注意
使用start_num可跳過指定數目的字元。例如,假定使用文本字元串“AYF0093.YoungMensApparel”,如果要查找文本字元串中說明部分的第一個“Y”的編號,則可將start_num設置為8,這樣就不會查找文本的序列號部分。FIND將從第8個字元開始查找,而在下一個字元處即可找到find_text,於是返回編號9。FIND總是從within_text的起始處返回字元編號,如果start_num大於1,也會對跳過的字元進行計數。
如果find_text是空文本(),則FIND則會返回數值1。
Find_text中不能包含通配符。
如果within_text中沒有find_text,則FIND返回錯誤值#VALUE!。
如果start_num不大於0,則FIND返回錯誤值#VALUE!。
如果start_num大於within_text的長度,則FIND返回錯誤值#VALUE!。
應用示例
A2=“廣東省東莞市東城區…”,A3=“黑龍江省哈爾濱市…”;對含有不同地方的數據,利用“Find”函數,非常簡單地確定“省”出現的位置。
詳細解釋
公式“=FIND("省",A2)”中,“省”表示要查找的文本為“省”,(實際使用中,也可以很長的一串字元)。要找查找的對象是A2單元格的內容“廣東省東莞市東城區…”,因為沒有指定起始位置,所以系統從第一位開始。返回的“3”,表示“省“字在第三位。
而公式“=FIND("省",A3)”中,“黑龍江省哈爾濱市…”則返回4。
註:FIND函數,第一位查找內容,如果是文本的話,必須添加英語輸入法下的雙引號,否則函數無法計算。
與Find類似,Search函數也有相同的功能。它們的區別是,Find區分大小寫,而Search不分大小寫(當被查找的文本為英文時)。
另外,在Excel中,對文本進行處理的很多函數都提供了一個特別用來處理雙位元組字元(如中文,日文)的函數,一般是在原函數后加“B”,如FIND,就有一個FINDB。LEFT,相對應的就是LEFTB等。其實,我們在實際應用中,使用不帶“B”的函數就足夠了。如果你想使用帶“B”的函數,則要特別注意,尤其是在組合運用函數時,其中一個函數使用帶“B”的形式,則其它有帶“B”形式的函數,全部都要使用其帶“B”的形式,否則結果極可能是錯的。
泛型演演算法的 find
在非string類型的容器里,可以直接找出所對應的元素.find函數需要幾個參數:迭代器,下標值,所要找的元素。
1 2 | vector find(a.begin(),a.end(),1); |
這句話就表示從a的頭開始一直到尾,找到第一個值為1的元素,返回的是一個指向該元素的迭代器。
find函數[Excel函數]
find在string容器中的用途
find在string容器中用途比較廣,有find_first_of,find_last_of,find_not_first_of,find_not_last_of等等。
在string類型中,需要的參數也有迭代器,下標和要找的字元串,可以查找單個的字元。因為最後一個參數是const char & _Val(頭文件algorithm的定義)
string a;find(a.begin(),a.end(),‘a’)這句話就是說,在a中找到第一個存在子串與'a'子串相等的字元串的首地址。返回指向該字元串首地址的迭代器(下一次迭代將會接著上一次的迭代,這樣很容易做出一個計算字元串中某個字元的出現次數)。
find_last_of則是找到最後一個。
find_not_first_of是找出第一個不與“asd”相等的字元串的首地址。
find在一個文字串中尋找另一個文字串.並返回find_text首次出現時字元的位置。用戶也可以使用search來在—個文字串中尋找另一個,但與search不同,find區分大小寫,並且不允許通配符。
findb在一個文字串中尋找另一個文字串,並返回find_text首次出現時字元的位置。此函數與find一樣,唯一不同的是find視雙位元組為1,而findb視雙位元組為2。如果star_num指向雙位元組字元串的第二位元組,則由下一位元組開始尋找。用戶也可以使用searchb在一個文字串中尋找另一個, 但與searchb不同,findb區分大小寫,並且不使用通配符。
編輯 語音
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | template InputIterator find( InputIteratorfirst, InputIteratorlast, constT&val ); |
first, last
輸入查詢序列的開始和結束位置,注意:這兩個參數為迭代器。
val
要查詢的值
返回查詢結果的迭代器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include #include #include usingnamespacestd; intmain() { //為vecIntegers添加數據 vector for(intnNum=0;nNum<10;++nNum) { vecIntegers.push_back(nNum); } //列印數據 vector for(iElementLocator=vecIntegers.begin(); iElementLocator!=vecIntegers.end(); ++iElementLocator) { cout<<*iElementLocator<<''; } cout< //查找數字3 //注意:返回值為迭代器 vector iElementFound=find(vecIntegers.begin(),vecIntegers.end(),3); if(iElementFound!=vecIntegers.end())//如果找到結果 { cout<<*iElementFound< } else { cout<<"沒有找到結果!"< } return0; } |
運行結果
1 2 | 0123456789 3 |