Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>:: c_str

From cppreference.net
std::basic_string
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 :

Écrire dans le tableau de caractères accessible via c_str() est un comportement indéfini.

c_str() et data() remplissent la même fonction.

(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 i dans [ 0 , size ( ) ) .

(jusqu'à C++11)

c_str ( ) + i == std:: addressof ( operator [ ] ( i ) ) pour chaque i dans [ 0 , size ( ) ] .

(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)