home | help
std::basic_...iew::substr(3)   C++ Standard Libary  std::basic_...iew::substr(3)

NAME
     std::basic_string_view::substr - std::basic_string_view::substr

Synopsis
	constexpr    basic_string_view	  substr(    size_type	  pos	 =    0,
     (since C++17)
					    size_type count = npos ) const;

	Returns a view of the substring [pos, pos + rlen),  where  rlen  is  the
     smaller of
	count and size() - pos.

Parameters
	pos   - position of the first character
	count - requested length

Return value
	View of the substring [pos, pos + rlen).

Exceptions
	std::out_of_range if pos > size().

Complexity
	Constant.

Example
     // Run this code

      #include <cstddef>
      #include <iostream>
      #include <stdexcept>
      #include <string_view>

      int main()
      {
	  typedef std::size_t count_t, pos_t;

	  constexpr std::string_view data{"ABCDEF"};

	  std::cout << data.substr() << '\n'; // ABCDEF, i.e. data[0, 5] that is
     [0, 6)
	  std::cout << data.substr(pos_t(1)) << '\n'; // BCDEF, i.e. [1, 6)
	  std::cout  <<  data.substr(pos_t(2), count_t(3)) << '\n'; // CDE, i.e.
     [2, 2 + 3)
	  std::cout << data.substr(pos_t(4), count_t(42)) << '\n'; //  EF,  i.e.
     [4, 6)

	  try
	  {
	      [[maybe_unused]]
	      auto  sub  = data.substr(pos_t(666), count_t(1)); // throws: pos >
     size()
	  }
	  catch (std::out_of_range const& ex)
	  {
	      std::cout << ex.what() << '\n';
	  }
      }

Possible output:
      ABCDEF
      BCDEF
      CDE
      EF
      basic_string_view::substr: __pos (which is 666) > __size (which is 6)

See also
	copy   copies characters
	       (public member function)
	find   find characters in the view
	       (public member function)
	substr returns a substring
	       (public member function of std::basic_string<CharT,Traits,Alloca-
     tor>)

http://cppreference.com 	   2024.06.10	    std::basic_...iew::substr(3)

home | help