std::basic_string<CharT,Traits,Allocator>:: c_str
|
const
CharT
*
c_str
(
)
const
;
|
(noexcept depuis C++11)
(constexpr depuis C++20) |
|
Retourne un pointeur vers un tableau de caractères terminé par un caractère nul avec des données équivalentes à celles stockées dans la chaîne.
Le pointeur est tel que la plage
[
c_str
(
)
,
c_str
(
)
+
size
(
)
]
est valide et les valeurs qu'elle contient correspondent aux valeurs stockées dans la chaîne avec un caractère nul supplémentaire après la dernière position.
Le pointeur obtenu à partir de
c_str()
peut être invalidé par :
- Passer une référence non-constante de la chaîne à toute fonction de la bibliothèque standard, ou
- Appeler des fonctions membres non-constantes sur la chaîne , à l'exception de operator[] , at() , front() , back() , begin() , rbegin() , end() et rend() (depuis C++11) .
Écrire dans le tableau de caractères accessible via
c_str()
est un comportement indéfini.
|
|
(depuis C++11) |
Table des matières |
Paramètres
(aucun)
Valeur de retour
Pointeur vers le stockage de caractères sous-jacent.
|
c_str
(
)
[
i
]
==
operator
[
]
(
i
)
pour chaque
|
(jusqu'à C++11) |
|
c_str
(
)
+
i
==
std::
addressof
(
operator
[
]
(
i
)
)
pour chaque
|
(depuis C++11) |
Complexité
Constante.
Notes
Le pointeur obtenu à partir de
c_str()
ne peut être traité comme un pointeur vers une chaîne de caractères terminée par un caractère nul que si l'objet string ne contient pas d'autres caractères nuls.
Exemple
#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()); }
Sortie :
c_func called with 'Emplary'
Voir aussi
|
(
DR*
)
|
accède au premier caractère
(fonction membre publique) |
|
(
DR*
)
|
accède au dernier caractère
(fonction membre publique) |
|
retourne un pointeur vers le premier caractère d'une chaîne
(fonction membre publique) |