Question: > 
> **Possible Duplicate:**  
> 
> [How to split a string?](https://stackoverflow.com/questions/236129/how-to-split-a-string) 
> 
> 
> 

Hi,

I have a string say "1,0,1", how can i get the substring separated by comma operator.

Answer: 
C++ doesn't have a built in function for doing exactly this. However, it can be implemented using either the `std::string::find_first_of` member function, or the non-member `std::find`.

Here's an example using the latter:

```
#include <string>
#include <vector>
#include <algorithm>

// given a string str, split it on every occurrence of the character delim
std::vector<std::string> tokenize(std::string str, char delim) {
    // store the results in a vector of strings
    std::vector<std::string> tokens;

    std::string::iterator end = str.end();
    std::string::iterator left = str.begin();
    for (;;) {
        // find the next occurrence of the delimiter
        std::string::iterator right = std::find(left, end, delim);
        // create a string from the end of last one up until the one we just foun
        tokens.push_back(std::string(left, right));
        // if we reached the end of the string, exit the loop
        if (right == end) { break; }
        // otherwise, start the next iteration just past the delimiter we just found
        left = right + 1;
    }
    return tokens;
}

// test program
int main() {
    std::string str = "foo, bar, baz";
    std::string str2 = "foo, bar, baz,";
    std::string str3 = "foo";
    std::string str4 = "";
    std::string str5 = ",";

    std::vector<std::string> tokens = tokenize(str, ',');
    std::vector<std::string> tokens2 = tokenize(str2, ',');
    std::vector<std::string> tokens3 = tokenize(str3, ',');
    std::vector<std::string> tokens4 = tokenize(str4, ',');
    std::vector<std::string> tokens5 = tokenize(str5, ',');
}

```

Of course there are a lot of border cases to handle, and this implementation might not do exactly what you want, but it should give you a starting point.
Search google for an algorithm to **explode** or **tokenize** your string. It's trivial.

You can also check out the documentation and use available tools : <http://www.cplusplus.com/reference/string/string/>

A simple implementation could be :

```
void tokenize(const string & text, vector<string> & tokens, char delim)
{
  size_t length = text.size();
  string token = "";

  for(size_t i=0;i<length;i++)
  {
      if(text[i] != delim)
      {
        token += text[i];
      }
      else
      {
        if(token.size() > 0)
        {
          tokens.push_back(token);
        }
        token = "";
      }
  }
  tokens.push_back(token);
}

```