std::basic_string<CharT,Traits,Allocator>:: c_str
|
const
CharT
*
c_str
(
)
const
;
|
(noexcept seit C++11)
(constexpr seit C++20) |
|
Gibt einen Zeiger auf eine nullterminierte Zeichenfolge zurück, deren Daten denen entsprechen, die im String gespeichert sind.
Der Zeiger ist so beschaffen, dass der Bereich
[
c_str
(
)
,
c_str
(
)
+
size
(
)
]
gültig ist und die darin enthaltenen Werte den im String gespeicherten Werten entsprechen, mit einem zusätzlichen Nullzeichen nach der letzten Position.
Der Zeiger, der von
c_str()
erhalten wird, kann ungültig gemacht werden durch:
- Übergabe einer nicht-konstanten Referenz auf den String an eine Standardbibliotheksfunktion, oder
- Aufruf nicht-konstanter Memberfunktionen auf dem String , ausgenommen operator[] , at() , front() , back() , begin() , rbegin() , end() und rend() (seit C++11) .
Das Schreiben in das Zeichenarray, auf das über
c_str()
zugegriffen wird, ist undefiniertes Verhalten.
|
|
(seit C++11) |
Inhaltsverzeichnis |
Parameter
(keine)
Rückgabewert
Zeiger auf den zugrundeliegenden Zeichenspeicher.
|
c_str
(
)
[
i
]
==
operator
[
]
(
i
)
gilt für jedes
|
(bis C++11) |
|
c_str
(
)
+
i
==
std::
addressof
(
operator
[
]
(
i
)
)
gilt für jedes
|
(seit C++11) |
Komplexität
Konstante.
Hinweise
Der Zeiger, der von
c_str()
erhalten wird, darf nur als Zeiger auf eine nullterminierte Zeichenkette behandelt werden, wenn das String-Objekt keine weiteren Nullzeichen enthält.
Beispiel
#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()); }
Ausgabe:
c_func called with 'Emplary'
Siehe auch
|
(
DR*
)
|
greift auf das erste Zeichen zu
(öffentliche Elementfunktion) |
|
(
DR*
)
|
greift auf das letzte Zeichen zu
(öffentliche Elementfunktion) |
|
gibt einen Zeiger auf das erste Zeichen einer Zeichenkette zurück
(öffentliche Elementfunktion) |