Maison > développement back-end > C++ > Est-ce que std::string inclut un terminateur nul ?

Est-ce que std::string inclut un terminateur nul ?

Patricia Arquette
Libérer: 2024-12-05 04:24:11
original
212 Les gens l'ont consulté

Does std::string Include a Null Terminator?

Std::string contient-il un terminateur nul ?

La classe std::string en C ne contient pas intrinsèquement un terminateur nul (' ') comme le style C strings.

Question :

La chaîne suivante contiendra-t-elle le terminateur nul ' ?

std::string temp = "hello whats up";
Copier après la connexion

Réponse :

Non. std::string stocke ses données en interne dans un tableau de caractères sans terminateur nul.

Explication :

Cependant, si vous accédez à la représentation de chaîne de style C en utilisant temp .c_str(), un terminateur nul sera inclus dans la chaîne renvoyée.

Supplémentaire Informations :

  • Vous pouvez inclure un caractère nul dans un std::string comme n'importe quel autre caractère, comme indiqué dans l'exemple suivant :
string s("hello");
cout << s.size() << ' ';
s[1] = '';
cout << s.size() << '\n';
Copier après la connexion
  • Ce code imprime "5 5", indiquant que le caractère nul n'affecte pas la taille de la chaîne.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal