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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::basic_string::find - std::basic_string::find

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

	  size_type pos	= 0 ) const
	  noexcept(/* see below	*/);

	  Finds	 the  first  substring	equal to the given character sequence.
       Search begins at
	  pos, i.e. the	found substring	must not begin in a position preceding
       pos.

	  1) Finds the first substring equal to	str.
	  2) Finds the first substring equal to	the range [s,  s+count).  This
       range may contain
	  null characters.
	  3)  Finds  the first 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 first character ch (treated as a	single-character  sub-
       string by the
	  formal rules below).
	  5)  Implicitly  converts  t  to  a  string view sv as	if by std::ba-
       sic_string_view<CharT,
	  Traits> sv = t;, then	finds the first	substring equal	 to  sv.  This
       overload
	  participates	 in   overload	resolution  only  if  std::is_convert-
       ible_v<const
	  StringViewLike&, std::basic_string_view<CharT, Traits>> is true and
	  std::is_convertible_v<const StringViewLike&, const CharT*> is	false.

	  Formally, a substring	str is said to be found	at  position  xpos  if
       all of the
	  following is true:

	    * xpos >= pos
	    * xpos + str.size()	<= size()
	    * for all positions	n in str, Traits::eq(at(xpos+n), str.at(n))

	  In particular, this implies that

	    * a	substring can be found only if pos <= size() - str.size()
	    * an empty substring is found at pos if and	only if	pos <= size()
	    * for a non-empty substring, if pos	>= size(), the function	always
       returns npos.

Parameters
	  str	- string to search for
	  pos	- position at which to start the search
	  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.

Exceptions
	  1-4) Throws nothing.
	  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) << '\n';
	    }
	}

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

	    // search from beginning of	string
	    n =	s.find("is");
	    print(n, s);

	    // search from position 5
	    n =	s.find("is", 5);
	    print(n, s);

	    // find a single character
	    n =	s.find('a');
	    print(n, s);

	    // find a single character
	    n =	s.find('q');
	    print(n, s);
	}

Output:
	found: is is a string
	found: is a string
	found: a string
	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
	  strstr	    finds the first occurrence of a substring of char-
       acters
			    (function)
			    finds the first occurrence of a wide string	within
       another wide
	  wcsstr	    string
			    (function)
	  strchr	    finds the first occurrence of a character
			    (function)
	  wcschr	     finds the first occurrence	of a wide character in
       a wide string
			    (function)
	  rfind		    find the last occurrence of	a substring
			    (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)
	  find		    find characters in the view
	  (C++17)	       (public	  member    function	of    std::ba-
       sic_string_view<CharT,Traits>)
	  search	    searches for a range of elements
			    (function template)

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

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

home | help