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

FreeBSD Manual Pages

  
 
  

home | help
std::basic_string::rfind(3)   C++ Standard Libary  std::basic_string::rfind(3)

NAME
       std::basic_string::rfind	- std::basic_string::rfind

Synopsis
	  size_type rfind( const basic_string&	       (until
	  str, size_type pos = npos ) const;	       C++11)
	  size_type rfind( const basic_string&	       (since
	  str,					       C++11)
	  size_type pos	= npos ) const		       (until
	  noexcept;				       C++20)
	  constexpr size_type rfind( const
	  basic_string&	str,			       (since
	  size_type pos	= npos ) const		       C++20)
	  noexcept;
	  size_type rfind( const CharT*	s,		       (until
	  size_type pos, size_type count )		       C++20)
	  const;
	  constexpr size_type rfind( const
	  CharT* s,					       (since
	  size_type pos, size_type count )		       C++20)
	  const;
	  size_type rfind( const CharT*	s,			       (until
	  size_type pos	= npos ) const;				       C++20)
	  constexpr size_type rfind( const			       (since
	  CharT* s, size_type pos = npos )			       C++20)
	  const;
	  size_type	  rfind(       CharT	   ch,	    size_type	   (1)
       (until
	  pos		  =		npos		 )		const;
       C++11)
									       (since
	  size_type	    rfind(	   CharT	 ch,	     size_type
       C++11)
	  pos	      =		npos	     )	       const	     noexcept;
       (until
						   (2)
       C++20)
	  constexpr	    size_type	      rfind(	     CharT	   ch,
       (since
	  size_type	    pos		=	  npos	       )	 const
       C++20)
	  noexcept;				       (3)
	  template < class StringViewLike >
										       (since
	  size_type							   (4)
       C++17)
										       (un-
       til
	  rfind(	     const	       StringViewLike&		    t,
       C++20)
	  size_type pos	= npos ) const
	  noexcept(/* see below	*/);				       (5)
	  template < class StringViewLike >

	  constexpr						     size_type
       (since
										       C++20)
	  rfind( const StringViewLike& t,
	  size_type pos	= npos ) const
	  noexcept(/* see below	*/);

	  Finds	the last substring equal  to  the  given  character  sequence.
       Search begins at
	  pos, i.e. the	found substring	must not begin in a position following
       pos. If npos or
	  any  value  not smaller than size()-1	is passed as pos, whole	string
       will be searched.

	  1) Finds the last substring equal to str.
	  2) Finds the last substring equal to the range  [s,  s+count).  This
       range can include
	  null characters.
	  3) Finds the last substring equal to the character string pointed to
       by s. The
	  length of the	string is determined by	the first null character using
	  Traits::length(s).
	  4) Finds the last character equal to ch.
	  5)  Implicitly  converts  t  to  a  string view sv as	if by std::ba-
       sic_string_view<CharT,
	  Traits> sv = t;, then	finds the last substring equal to the contents
       of sv. This
	  overload participates	in overload resolution	only  if  std::is_con-
       vertible_v<const
	  StringViewLike&, std::basic_string_view<CharT, Traits>> is true and
	  std::is_convertible_v<const StringViewLike&, const CharT*> is	false.

	  In all cases,	equality is checked by calling Traits::eq.

Parameters
	  str	- string to search for
	  pos	- position at which to begin searching
	  count	- length of substring to search	for
	  s	- pointer to a character string	to search for
	  ch	- character to search for
	  t	- object (convertible to std::basic_string_view) to search for

Return value
	  Position of the first	character of the found substring or npos if no
       such substring
	  is  found. Note that this is an offset from the start	of the string,
       not the end.

	  If  searching	 for  an   empty   string   (str.size(),   count,   or
       Traits::length(s) is zero)
	  returns  pos	(the  empty  string is found immediately) unless pos >
       size() (including
	  the case where pos ==	npos), in which	case returns size().

	  Otherwise, if	size() is zero,	npos is	always returned.

Exceptions
	  5)
	  noexcept specification:
	  noexcept(std::is_nothrow_convertible_v<const	    T&,	      std::ba-
       sic_string_view<CharT,
	  Traits>>)

Example
       // Run this code

	#include <string>
	#include <iostream>

	void print(std::string::size_type n, std::string const &s)
	{
	    if (n == std::string::npos)	{
		std::cout << "not found\n";
	    } else {
		std::cout  <<  "found:	\"" << s.substr(n) << "\" at " << n <<
       '\n';
	    }
	}

	int main()
	{
	    std::string::size_type n;
	    std::string	const s	= "This	is a string";

	    // search backwards	from end of string
	    n =	s.rfind("is");
	    print(n, s);
	    // search backwards	from position 4
	    n =	s.rfind("is", 4);
	    print(n, s);
	    // find a single character
	    n =	s.rfind('s');
	    print(n, s);
	    // find a single character
	    n =	s.rfind('q');
	    print(n, s);
	}

Output:
	found: "is a string" at	5
	found: "is is a	string"	at 2
	found: "string"	at 10
	not found

	 Defect	reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	     DR	      Applied	 to		 Behavior     as     published
       Correct behavior
	  LWG  2064  C++11	 overload (3) and (4) were noexcept	   re-
       moved
	  LWG  2946  C++17	 string_view  overload	causes	ambiguity   in
       avoided by making it a
			      some  cases				  tem-
       plate
	  P1148R0  C++11      noexcept for overload  (4)/(5)  was	   re-
       stored
		   C++17      accidently dropped by LWG2064/LWG2946

See also
	  find		    find characters in the string
			    (public member function)
	  find_first_of	    find first occurrence of characters
			    (public member function)
	  find_first_not_of find first absence of characters
			    (public member function)
	  find_last_of	    find last occurrence of characters
			    (public member function)
	  find_last_not_of  find last absence of characters
			    (public member function)
	  rfind		    find the last occurrence of	a substring
	  (C++17)	       (public	  member    function	of    std::ba-
       sic_string_view<CharT,Traits>)

http://cppreference.com		  2022.07.31	   std::basic_string::rfind(3)

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

home | help