meiiion Asked:2020-06-02 16:18:35 +0000 UTC2020-06-02 16:18:35 +0000 UTC 2020-06-02 16:18:35 +0000 UTC 如果分隔符超过一个字符,则将字符串拆分为单词 772 如何实现一个函数,该函数将返回一个指向字符串数组的指针,以便分隔符既可以是字符串又可以是字符?对于字符串,只能使用 char 数组。例如,在分隔符 "o w" 处拆分字符串 "Hello world" 以得到数组 {"Hell","orld"} c++ 2 个回答 Voted Andrej Levkovitch 2020-06-02T16:55:29Z2020-06-02T16:55:29Z 在和令牌迭代器的帮助regex下,这是以一种基本的方式完成的: #include <algorithm> #include <iostream> #include <iterator> #include <list> #include <regex> #include <string> using StringList = std::list<std::string>; StringList splitString(const std::string &str, const std::string &delimiter) { StringList retval; std::regex regDelim{delimiter}; for (std::sregex_token_iterator iter{str.begin(), str.end(), regDelim, -1}; iter != std::sregex_token_iterator{}; ++iter) { retval.emplace_back(iter->str()); } return retval; } int main() { std::string str = "hello world"; StringList list = splitString(str, "o w"); for (const std::string &out : list) { std::cout << out << std::endl; } } Best Answer user375573 2020-06-02T17:06:31Z2020-06-02T17:06:31Z 最简单的方法是使用函数strtok(): int main () { char str[] = "Hello, world"; char delim[] = "ow"; char * pch = strtok (str,delim); while (pch != NULL) { printf("%s", pch); pch = strtok (NULL, delim); } return 0; }
在和令牌迭代器的帮助
regex下,这是以一种基本的方式完成的:最简单的方法是使用函数
strtok():