95 votes

Quelle est l'utilité de la fonction c_str() ?

Je comprends c_str convertit une chaîne, qui peut être ou non à terminaison nulle, en une chaîne à terminaison nulle.

Est-ce vrai ? Pouvez-vous donner des exemples ?

6voto

pmr Points 30450

Il est utilisé pour fabriquer std::string interopérable avec le code C qui nécessite une terminaison nulle. char* .

1voto

Li haonan Points 111

Vous l'utiliserez lorsque vous encoderez/décoderez un objet de type chaîne de caractères que vous transférez entre deux programmes.

Supposons que vous utilisiez Base64 pour encoder un tableau en Python, et vous voulez ensuite le décoder en C++. Une fois que vous avez la chaîne que vous décodez à partir du décodage Base64 en C++. Pour la transformer en un tableau de flottants, tout ce que vous avez à faire est de.. :

float arr[1024];
memcpy(arr, ur_string.c_str(), sizeof(float) * 1024);

Il s'agit d'un usage assez courant, je suppose.

0voto

SridharKritha Points 346

const char* c_str() const;

Elle renvoie un pointeur sur un tableau contenant un séquence à terminaison nulle de caractères (c'est-à-dire une chaîne C), représentant la valeur actuelle de l'objet chaîne.

Ce tableau comprend la même séquence de caractères que celle qui constitue la valeur de l'objet chaîne, plus un caractère nul de fin ('). \0 ') à la fin.

std::string str = "hello";
std::cout << str;          // hello
printf("%s", str);         // ,²/
printf("%s", str.c_str()); // hello

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X