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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::basic_string::c_str	- std::basic_string::c_str

Synopsis
	  const	CharT* c_str() const;			  (until C++11)
	  const	CharT* c_str() const noexcept;		  (since C++11)
							  (until C++20)
	  constexpr const CharT* c_str() const noexcept;  (since C++20)

	  Returns  a  pointer  to  a null-terminated character array with data
       equivalent to those
	  stored in the	string.

	  The pointer is such that the range [c_str(); c_str()	+  size()]  is
       valid and the
	  values  in  it correspond to the values stored in the	string with an
       additional null
	  character after the last position.

	  The pointer obtained from c_str() may	be invalidated by:

	    * Passing a	non-const reference to the string to any standard  li-
       brary function, or
	    * Calling non-const	member functions on the	string
	      ,	 excluding  operator[],	 at(),	front(), back(), begin(), rbe-
       gin(), end() and
	      rend()
	      (since C++11).

	  Writing to the character array accessed through c_str() is undefined
       behavior.

	  c_str() and data() perform the same function.	(since C++11)

Parameters
	  (none)

Return value
	  Pointer to the underlying character storage.

	  c_str()[i]  ==  operator[](i)	 for   every   i   in	[0,   size()).
       (until C++11)
	  c_str()  +  i	 ==  std::addressof(operator[](i))  for	every i	in [0,
       (since C++11)
	  size()].

Complexity
	  Constant.

Notes
	  The pointer obtained from c_str() may	only be	treated	as  a  pointer
       to a
	  null-terminated  character string if the string object does not con-
       tain other null
	  characters.

Example
       // Run this code

	#include <algorithm>
	#include <cassert>
	#include <cstring>
	#include <string>

	extern "C" {
	void c_func(const char*	c_str) { printf("c_func	called	with  '%s'\n",
       c_str); }
	}

	int main() {
	  std::string const s("Emplary");
	  const	char* p	= s.c_str();
	  assert(s.size() == std::strlen(p));
	  assert(std::equal(s.begin(), s.end(),	p));
	  assert(std::equal(p, p + s.size(), s.begin()));
	  assert('\0' == *(p + s.size()));

	  c_func(s.c_str());
	}

Output:
	c_func called with 'Emplary'

See also
	  front	  accesses the first character
	  (C++11) (public member function)
	  back	  accesses the last character
	  (C++11) (public member function)
	  data	  returns a pointer to the first character of a	string
		  (public member function)

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

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

home | help