Maison > développement back-end > C++ > Comment puis-je créer un std::string avec des caractères nuls intégrés en C ?

Comment puis-je créer un std::string avec des caractères nuls intégrés en C ?

Linda Hamilton
Libérer: 2024-12-01 02:38:11
original
774 Les gens l'ont consulté

How Can I Create a std::string with Embedded Null Characters in C  ?

Création d'une std::string avec des caractères nuls intégrés

Problème :

Lors de la tentative pour construire un std::string avec une ligne contenant un caractère nul incorporé ( ), tel as :

std::string my_string("a<pre class="brush:php;toolbar:false">#include <iostream>
#include <string>

int main()
{
    using namespace std::string_literals;

    std::string s = "pl-<pre class="brush:php;toolbar:false">std::string x("pqrs");   // Two characters because input assumed to be C-String
std::string x("pqrs",5); // 5 Characters because input is now a char array with 5 characters.
Copier après la connexion
-op"s; // Notice the "s" at the end of the string literal std::cout << s << "\n"; }b");

seul le caractère précédant le caractère nul est conservé. Comment pouvons-nous construire correctement une chaîne avec des caractères nuls intégrés ?

Solution :

Depuis C 14

C 14 a été introduit des littéraux de chaîne, permettant la création directe de std::strings avec des caractères nuls intégrés à l'aide du s suffixe :

Avant C 14

Avant C 14, les constructeurs std::string supposaient que l'entrée était une chaîne de style C, qui se termine par un caractère nul. Pour gérer les caractères nuls incorporés, utilisez le constructeur qui prend un tableau de caractères et une longueur :

Remarque : std::les chaînes ne sont pas intrinsèquement terminées par un caractère nul. Cependant, la méthode c_str() fournit un pointeur vers un tampon interne qui contient une chaîne C avec le terminateur nul.

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