_tcstok_s中的多字符分隔符

时间:2015-01-15 08:27:12

标签: c++ msdn tchar

我找不到这个特定问题的副本,尽管有不同语言的类似问题。

我正在尝试将字符串拆分为令牌,其中我的分隔符是一个双字符串。

我的问题是: 1.是否可以使用_tcstok_s来实现它,因为MSDN说它需要一组字符作为分隔符,它将匹配任何这些字符? 2.如果无法使用_tcstok_s执行此操作,则可执行任何其他功能。我的字符串是TCHAR,我想尽可能使用内置函数。

谢谢!

1 个答案:

答案 0 :(得分:0)

无法找到内置函数来执行此操作。我使用以下内容,

TCHAR *str=TEXT("mango, banana, apple");

std::wstring paramStr(str);
std::wstring delimiter = L", ";
size_t pos = 0;
std::string token;

while ((pos = paramStr.find(delimiter)) != std::string::npos) {
    token = paramStr.substr(0, pos);
    std::cout << token << std::endl;
    paramStr.erase(0, pos + delimiter.length());
}

std::cout << paramStr << std::endl;