2015-01-15 3 views
0

Я не могу найти дубликат для этого конкретного вопроса, хотя для разных языков есть похожие.Многосимвольный разделитель символов в _tcstok_s

Я пытаюсь разбить строку на токены, где мой разделитель представляет собой двухсимвольную строку.

Мои вопросы: 1. Возможно ли это сделать с помощью _tcstok_s, поскольку MSDN говорит, что для любого из этих символов требуется набор символов в качестве разделителя? 2. Если это невозможно сделать с помощью _tcstok_s, любая другая функция, которая может это сделать. Мои строки - TCHAR, и я хотел бы использовать встроенную функцию как можно больше.

Спасибо!

ответ

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; 
Смежные вопросы