Note: use the github provided TOC for navigaing.
string find() is different than the array/vector find() finction.
string find():
here we are finding the 1st and the 2nd occurence of sub-string.
int main(){
    string paragraph = "We are learning about STL strings. STL string class is quite powerful";
    string word;
    getline(cin,word);
    //find function
    int index =  paragraph.find(word);
    if(index!=-1){
        cout <<"first occ" <<index;
    }
    index = paragraph.find(word,index+1);
    if(index!=-1){
        cout<<"second occ "<<index <<endl;
    }
    return 0;
}
good source: https://www.geeksforgeeks.org/string-find-in-cpp/
The function returns the index of the first occurrence of sub-string, if the sub-string is not found it returns string::npos(string::npos is static member with value as the highest possible for the size_t data structure).
find() in array/vector:int main(){
    int arr[] = {1,2,3,4,5};
    int n = 5;
    int key = 4;
    auto it = find(arr,arr+n,key);      // returns the address of the key
    int idx = it-arr;                   // if you substract the address by the 
                                        // base then you will get the idx of key
    cout<<idx;                          // prints the index of key
    
    // find any element is not present
    if(idx==n){
        cout<<"adsent";
    }
    else{
        cout<<"present";
    }
}
str.substr() function:int main() {
    string word = "hello";
    cout<<word.substr(0,2);
}
>>> he