From cppreference.com
constCharT*data()const; (1) (noexcept since C++11)
(constexpr since C++20)CharT*data()noexcept; (2) (since C++17)
(constexpr since C++20)Returns a pointer to the first element of the underlying array serving as character storage. The pointer is such that the range
[data(), data()+size())
(until C++11)[data(), data()+size()]
(since C++11)is valid and the values in it correspond to the values stored in the string.
The returned array is not required to be null-terminated.
If
returns true, the pointer is a non-null pointer that should not be dereferenced.
(until C++11)The returned array is null-terminated, that is, data() and
perform the same function.
If
returns true, the pointer points to a single null character.
(since C++11)The pointer obtained from data() may be invalidated by:
Passing a non-const reference to the string to any standard library function, or
Calling non-const member functions on the string, excluding
,
,
,
,
,
,
,
.
1) Modifying the character array accessed through the const overload of data has undefined behavior.
2) Modifying the past-the-end null terminator stored at data() +
to any value other than CharT() has undefined behavior.
Parameters
(none)
Return value
A pointer to the underlying character storage.
data()[i]==operator[](i) for every i in [0, size()).
(until C++11)data()+i==std::addressof(operator[](i)) for every i in [0, size()].
(since C++11)Complexity
Constant.
Example
Run this code
#include<algorithm>#include<cassert>#include<cstring>#include<string>intmain(){std::stringconsts("Emplary");assert(s.size()==std::strlen(s.data()));assert(std::equal(s.begin(),s.end(),s.data()));assert(std::equal(s.data(),s.data()+s.size(),s.begin()));assert('\0'==*(s.data()+s.size()));}See also
(DR*)
accesses the first character
(public member function)
(DR*)
accesses the last character
(public member function)
returns a non-modifiable standard C character array version of the string
(public member function)
returns a pointer to the first character of a view
(public member function of std::basic_string_view<CharT,Traits>)