#include <iostream> #include <string> #include <cstring> int main() { const char *c = "2:212,2:213,2:214,2:215,2:216,2:217,2:218,2:219,2:220,2:221,2:222,2:223,2:224,2:225,2:226,2:227,2:228,2:229,2:230,2:231,2:232,2:233,2:234,2:235,2:236,2:237,2:238,2:239,2:240,2:241,2:242,2:243,2:244,2:245,2:246,2:247,2:248,2:249,2:250,2:251,2:252,2:253,2:254,2:255,2:256,2:257,2:258,2:259,2:260,2:261,2:262,2:263,2:264,2:265,2:266,2:267,2:268,2:269,2:270,2:271,2:272,2:273,2:274,2:275,2:276,2:277,2:278,2:279,2:280,2:281,2:282,2:283,2:284,2:285,2:286,2:287,2:288,2:289,2:290,2:291,2:292,2:293,2:294,2:295,2:296,2:297,2:298,2:299,2:300,2:301,2:302,2:303,2:304,2:305,2:306,2:307,2:308,2:309,2:310,2:311,"; //const char *c = "2:212"; int beginPos = 0; int endPos = 0; std::string buf = c; const char *token = ","; while (true) { beginPos = buf.find_first_not_of(token, beginPos); if (beginPos == (int)std::string::npos) { break; } endPos = buf.find_first_of(token, beginPos); if ((int)std::string::npos == endPos) { break; } std::string sub = buf.substr(beginPos, endPos - beginPos); std::cout << "sub = " << sub << std::endl; beginPos = endPos; } return 0; }