There’re a lot of funny and clumsy answer about this question, some of them even convert string to char* and then using strtok to accomplish it.
But here, I figure out a very nice way just using the find function in string class.
void Split_String(std::string& input_str, std::string& delimiter){ std::string substring; std::string::size_type offset; std::string::size_type old_offset; offset = 0; old_offset = 0; while(1) { offset = input_str.find(delimiter.c_str(), old_offset); if(offset == input_str.npos) { substring = input_str.substr(old_offset, input_str.length() - old_offset); //The substring here will be the last part of input_str //You can process it here, do some comparison or etc. break; //Jump out the loop } substring = input_str.substr(old_offset, offset - old_offset); //This is every part in input_str but last part //You can process it here, do some comparison or etc. old_offset = offset + delimiter.length(); }; }