std::string gettoknth(std::string &str, int n) { std::string::size_type s = 0, e = 0; if (!findtoknth(str, n, s, e)) return ""; return str.substr(s, e - s); }
bool changetoknth(std::string &str, int n, const char *with, bool insert = false, bool nonzero = false) { std::string::size_type s = 0, e = 0; if (!findtoknth(str, n, s, e)) return false; if (nonzero && str.substr(s,e-s) == "0") return true; // not an error if (!insert) str.replace(s, e-s, with); else str.insert(s, with); return true; }