Я пытаюсь взять строку смайлов и разбить их на вектор каждого смайлика
Учитывая строку:
std::string emojis = "????????";
Я пытаюсь получить:
std::vector<std::string> splitted_emojis = {"?", "?", "?", "?", "?", "?", "?", "?"};
Edit
Пытался сделать:
std::string emojis = "????????";
std::vector<std::string> splitted_emojis;
size_t pos = 0;
std::string token;
while ((pos = emojis.find("")) != std::string::npos)
{
token = emojis.substr(0, pos);
splitted_emojis.push_back(token);
emojis.erase(0, pos);
}
Но вроде через пару секунд выдает terminate called after throwing an instance of 'std::bad_alloc'
.
При попытке проверить, сколько смайликов в строке, используя:
std::string emojis = "????????";
std::cout << emojis.size() << std::endl; // returns 32
, он возвращает большее число, которое, как я полагаю, является данными Unicode. Я не слишком много знаю о данных Unicode, но я пытаюсь выяснить, как проверить, когда данные эмодзи начинаются и заканчиваются, чтобы иметь возможность разделить строку на каждый эмодзи