7 #ifndef TURI_STRING_UTIL_H_ 8 #define TURI_STRING_UTIL_H_ 14 template<
class T> std::vector<T> strip_seq_prefix(
const std::vector<T>& v,
const std::vector<T>& tok) {
19 if (tok_i >= static_cast<int64_t>(tok.size())) {
23 if (s != tok[tok_i]) {
35 bool starts_with(
const std::string& x,
const std::string& x_sub);
36 bool ends_with(
const std::string& x,
const std::string& x_sub);
37 bool contains(
const std::string& x,
const std::string& x_sub);
39 bool starts_with(
const std::vector<std::string>& x,
const std::vector<std::string>& x_sub);
40 bool ends_with(
const std::vector<std::string>& x,
const std::vector<std::string>& x_sub);
42 std::vector<std::string>
split(
const std::string& s,
const std::string& tok);
43 std::string join(
const std::vector<std::string>& v,
const std::string& tok);
44 std::string lstrip_all(
const std::string& s,
const std::string& tok);
45 std::string rstrip_all(
const std::string& s,
const std::string& tok);
46 std::string strip_all(
const std::string& s,
const std::string& tok);
void split(S &&input, T &&output1, T &&output2, FilterFn filterfn, size_t random_seed=std::time(NULL))