Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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,Al-
       locator>)

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

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::u16string_view::substr&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help