Maison > développement back-end > C++ > le corps du texte

C 11 nécessite-t-il des chaînes à terminaison nulle pour c_str() et data() ?

Mary-Kate Olsen
Libérer: 2024-10-27 03:15:02
original
202 Les gens l'ont consulté

 Does C  11 Require Null-Terminated Strings for c_str() and data()?

C 11 autorise-t-il les chaînes à terminaison non nulle dans la méthode c_str() ?

En C 11, la définition de c_str( ) pour la classe basic_string a changé. Il est maintenant défini comme étant équivalent à data(), qui à son tour est défini pour renvoyer un pointeur vers le nième élément de la chaîne, où n est compris entre 0 et la taille de la chaîne moins 1.

Cependant , la définition mise à jour de la méthode Operator[], qui sous-tend à la fois c_str() et data(), indique clairement que les chaînes doivent désormais utiliser des tampons terminés par un caractère nul en interne.

Plus précisément, la méthode Operator[] nécessite que la valeur renvoyée soit une référence à un objet de type T avec une valeur de charT(), où T est le type des éléments de la chaîne et charT() est le type du caractère nul. De plus, cette valeur référencée ne peut pas être modifiée.

Étant donné que c_str() et data() doivent tous deux être des opérations O(1), l'implémentation est essentiellement obligée d'utiliser des tampons terminés par un caractère nul. De plus, l'exigence de valeur de retour de la méthode Operator[] signifie également que le caractère nul de fin doit être dans le même tampon que les éléments 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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!