C ++ эквивалент Python String Slice?

В python мне удалось разрезать часть строки; другими словами, просто напечатайте символы после определенной позиции. Есть ли эквивалент этого в C ++?

Код Python:

text= "Apple Pear Orange" print text[6:] 

Будет печать: Pear Orange

5 Solutions collect form web for “C ++ эквивалент Python String Slice?”

Да, это метод substr :

 basic_string substr( size_type pos = 0, size_type count = npos ) const; 

Возвращает подстроку [pos, pos + count). Если запрошенная подстрока продолжается до конца строки или если count == npos, возвращаемая подстрока – [pos, size ()).

пример

 #include <iostream> #include <string> int main(void) { std::string text("Apple Pear Orange"); std::cout << text.substr(6) << std::endl; return 0; } 

Посмотрите, как он работает

 std::string text = "Apple Pear Orange"; std::cout << std::string(text.begin() + 6, text.end()) << std::endl; // No range checking at all. std::cout << text.substr(6) << std::endl; // Throws an exception if string isn't long enough. 

Обратите внимание: в отличие от python, первая не проверяет диапазон: ваша строка ввода должна быть достаточно длинной. В зависимости от вашего конечного использования для среза могут быть и другие альтернативы (например, использование диапазона итераторов непосредственно вместо того, чтобы делать копию, как я здесь).

Похоже, вы хотите string :: substr :

 std::string text = "Apple Pear Orange"; std::cout << text.substr(6, std::string::npos) << std::endl; // "Pear Orange" 

Здесь string :: npos является синонимом «до конца строки» (и также по умолчанию, но я включил его для ясности).

Вы можете сделать что-то подобное, используя класс string:

 std::string text = "Apple Pear Orange"; size_t pos = text.find('Pear'); 

В C ++ ближайшим эквивалентом, вероятно, будет строка :: substr (). Пример:

 std::string str = "Something"; printf("%s", str.substr(4)); // -> "thing" printf("%s", str.substr(4,3)); // -> "thi" 

(первый параметр – начальное положение, второе – отрезанная длина). Второй параметр по умолчанию – конец строки (string :: npos).

  • Нужна помощь при запуске с Boost.Python
  • TNonblockingServer в аварийных ситуациях, когда открывается TFramedTransport
  • Boo vs C # vs Python?
  • Пользовательский RTTI для использования в определенных сценариях типах
  • Как использовать закрытую ручку в рабочей нити
  • Как определить, идентичны ли два раздела (кластеризации) точек данных?
  • Значительное пробел в C #, например Python или Haskell?
  • Использование моделей глубокого обучения от TensorFlow в других языковых средах
  • Запись и воспроизведение событий в формате Qt GUI
  • Boost :: Класс Python с шаблонами функций: как добавить экземпляры извне?
  • Кросс-платформенный IPC
  •  
    Interesting Posts for Van-Lav

    Получение даты 7 дней назад с текущей даты в python

    Есть ли библиотека Python для генерации файлов .ico?

    Python 3.1.3 открыть файл mbox, действительно медленный по сравнению с python 2.x?

    Как назначение функции как атрибута класса становится методом в Python?

    Декораторы против классов в веб-разработке python

    Как преобразовать hex в десятичный в Python?

    Почему __new__ в классах нового стиля Python метод класса?

    Могу ли я пометить переменные как переходные, чтобы они не были маринованными?

    Поток всей неупорядоченной / перетасованной уникальной перестановки элементов во вложенном списке (список списка) в Python?

    Ошибка выполнения lxml: Причина: Несовместимая версия библиотеки: etree.so требуется версия 12.0.0 или новее, но libxml2.2.dylib предоставляет версию 10.0.0

    Как создать словарь Python с двойными кавычками в качестве формата котировки по умолчанию?

    файл загрузки FTP python с определенным именем

    ImportError: нет модуля с именем matplotlib

    Настройки Django Неизвестные параметры: TEMPLATE_DEBUG

    Как я могу заполнить эти квадраты в черепахе – Python

    Python - лучший язык программирования в мире.