Conversion de std::string en char* ou char[]
En C , on peut rencontrer le besoin de convertir un std:: chaîne, qui contient une séquence de caractères, dans un tableau de caractères terminé par un caractère nul représenté par char* ou char[]. Cependant, une conversion directe utilisant l'opérateur d'affectation entraîne une erreur.
Pour réaliser cette conversion, plusieurs méthodes sont disponibles :
1. Méthode c_str() :
La méthode c_str() de std::string renvoie un pointeur vers la chaîne de style C sous-jacente, qui se termine par un caractère nul. Ce pointeur peut être directement affecté à une variable char*.
std::string str = "string"; const char *cstr = str.c_str();
2. Méthode data() :
La méthode data() de std::string renvoie également un pointeur vers la chaîne de style C sous-jacente, mais elle n'est pas const. Ce pointeur peut être attribué à une variable char* sans le qualificatif const.
std::string str = "string"; char *cstr = str.data();
Autres options :
On peut créer un std::vecteur de caractères et copier les caractères du std::string dedans. La méthode data() du vecteur peut ensuite être utilisée pour obtenir un pointeur char*.
On peut manuellement allouez un tableau de caractères à l'aide de l'opérateur new, copiez les caractères de std::string dans le tableau et utilisez le tableau comme pointeur char*. Cette approche doit être utilisée avec prudence en raison de problèmes de gestion manuelle de la mémoire.
En résumé, les méthodes c_str() et data() de std::string fournissent des moyens pratiques pour convertir un std::string en char* ou type de données char[]. D'autres options, telles que la copie dans un std::vector ou l'allocation manuelle de mémoire, peuvent être utilisées dans des situations spécifiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!