Хорошо, во-первых, я не хочу использовать Boost или какие-либо внешние библиотеки. Я просто хочу использовать C ++ Standard Library . Я могу легко разбить строки с помощью заданного разделителя с помощью моей функции split()
:
void split(std::string &string, std::vector<std::string> &tokens, const char &delim) {
std::string ea;
std::stringstream stream(string);
while(getline(stream, ea, delim))
tokens.push_back(ea);
}
Я делаю это с именами файлов. Но есть проблема. Существуют файлы с такими расширениями, как: tar.gz
, tar.bz2
и т. Д. Также есть некоторые имена файлов с дополнительными точками. Some.file.name.tar.gz
. Я хочу разделить Some.file.name
и tar.gz
Примечание: Количество точек в имени файла не является постоянным.
Я тоже пытался PathFindExtension
, но не повезло. Это возможно? Если так, пожалуйста, просветите меня. Спасибо.
Редактировать: Мне очень жаль, что я не указал ОС. Это Windows.