先來看一個例子吧:
#include "iostream" #include "string" using namespace std; // 定義函數求str2在是str1中出現的次數 int occurrer_number(string str1,string str2) { int pos; // 記下要查找的字元(串)在字元串中的位置 int k=0; // 該字元(串)出現的次數 int pos1=-1; // 輸入字元串 cout<<"請輸入一串字元:"<<endl; cin>>str1; // 輸入要查找的字元串 cout<<"請輸入要查找的字元(串):"<<endl; cin>>str2; // 先找到第一個位置 pos=str1.find(str2); if(pos!=-1) { k++; } // 開始數,str1在str中出現的次數; for(;;) { pos=str1.find(str2,pos+str2.length()); // 查找之後還有沒有str1,如果沒有會将-1賦給pos if(pos==pos1) { break; // 直到pos變成-1時跳出 } else { k++; // 若不是-1,則出現的次數+1 } } return k; // 傳回次數 } void main() { string str1,str2; // 定義兩個字元串變量 int show_num; // 出現的次數 // 調用求解次數的函數int occurrer_number(string str1,string str2) show_num=occurrer_number(str1,str2); cout<<"共出現"<<show_num<<"次該字元(串)"<<endl;
find函數的運用時,如果找到就傳回位置,找不到傳回的是-1