I have a string of items (see code). I want to say when a specific item from that list is found. In my example I want the output to be 3 since the item is found after the first two items. I can print out the separate items to the console but I cannot figure out how to do a count on these two items. I think it is because of the while loop... I always get numbers like 11 instead of two separate 1s. Any tips? :)
#include <iostream>
#include <string>
using namespace std;
int main() {
string items = "box,cat,dog,cat";
string delim = ",";
size_t pos = 0;
string token;
string item1 = "dog";
int count = 0;
`;
 
while ((pos = items.find(delim)) != string::npos)
{
    token = items.substr(0, pos);
    if (token != item1)
    {
        
            cout << token << endl;  //here I would like to increment count for every   
                                    //item before item1 (dog) is found     
         items.erase(0, pos + 1);
        
    }
    else if (token == item1)
    return 0;
    
}
    return 0;      //output: box cat
}
 
     
    