Как мне вернуть подстроку из строки в C ++? - PullRequest
0 голосов
/ 15 апреля 2019

Мне нужно реализовать похожий на питон метод среза в C ++.Если они спросят меня:

  Slice("Hello World!",1)     output = "ello World!"
  Slice("Hello World!",0,5)   output = "Hello"
  Slice("Hello World!",0,-1)  output = "Hello World"
  Slice("Hello World!",3,-2)  output = "lo Worl"
  Slice("Hello World!",-5,-2) output = "orl"
  Slice("Hello World!",14)    output = "  "

, если мои ограничения таковы, как бы я реализовал этот срез, как метод

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

1 Ответ

3 голосов
/ 15 апреля 2019

Используйте метод std::string::substr(), например:

std::string Slice(const std::string &str, ssize_t start, ssize_t end)
{
    return str.substr(start, end-start);
}

Если вы не можете использовать substr() (по какой-то нелепой причине), тогда вы можете использовать что-то более похожееэто вместо:

std::string Slice(const std::string &str, ssize_t start, ssize_t end)
{
    if (start >= str.length())
        return std::string();

    if (end > str.length())
        end = str.length();

    return std::string(str.c_str() + start, end - start);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...