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).

  • SOCKS в C / C ++ или на другом языке?
  • Общая библиотека SWIG и C ++
  • вложение ошибки python при инициализации
  • Скриншот цветовое усреднение прямоугольников
  • Передача массива Python в c ++ с помощью SWIG
  • Параллельность. Расширяются ли расширения Python на C / C ++, связанные с блокировкой Global Interpreter?
  • Чтение быстрых файлов данных
  • Генерировать и анализировать код Python из приложения C #
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.