Comment créer une chaîne dynamique dans c ++

<article data-type="article">

types de données dynamiques ne disposent pas d`une taille fixe. Lorsqu`un ordinateur stocke un certain nombre, il utilise le même nombre d`octets pour stocker le nombre "0" et le nombre "20000." Mais essayez de stocker une phrase et le panorama change radicalement. Étant donné que chaque phrase a une longueur différente, la mémoire utilisée pour stocker la phrase doit changer dynamiquement. Norme C ne comprend pas un type de données de chaîne, et la conception d`un type de données de chaîne dynamique (ou la classe de chaîne) est devenu presque un rite de passage de tout nouveau C / C ++ programmeur.

Choses que vous devez

  • Ordinateur
  • C ++ Compiler (recommandé: Visual C ++ Express)

Concevoir une classe String

  • Visualisez les caractéristiques de votre classe de chaîne. Votre chaîne doit comporter les éléments suivants:

    taille dynamique (changement avec l`entrée d`utilisateur, ou la cession).

    Être en mesure de connaître la taille de votre chaîne.

    Sortie de la chaîne stockée dans la mémoire.

    Rangez la taille.

    Rangez le premier caractère de notre chaîne (car elle est dynamique, vous ne savez pas où elle se termine.)

  • Quelles sont les caractéristiques distinctes de votre classe de chaîne sont des informations (ou données) et ceux qui sont des fonctions. En général, tout ce qui concerne l`action est une fonction. De notre liste:

    -gt taille dynamique; Fonction basée sur comment voulez-vous construire une chaîne.

    Connaître la taille de la -gt de chaîne; Fonction.

    Sortie le -gt de chaîne; Fonction.

    Stocker le -gt taille; données / informations.

    Stocker le début de la -gt de chaîne; données / informations.

  • Définir le rôle de chaque fonction, et le type de données membres de votre classe en termes simples. Dans la liste précédente:

    Dynamic Taille - Fonction - Création de la chaîne.

    Connaître la taille - Fonction - Retourne la taille de la chaîne.

    Sortie de la chaîne - Fonction - Retourne le contenu de la chaîne.

    Conserver la taille - les données / informations - doit être un entier positif.

    Stocker le début de la chaîne - les données / informations - un caractère.

La mise en œuvre de la classe String - Fichier d`en-tête

  • Créer un fichier d`en-tête appelé MyString.h (-gt Fichier, Ajouter -gt; fichier d`en-tête). Un fichier d`en-tête est comme un index pour votre code.

  • Définissez votre classe dans le fichier d`en-tête. Voici le code:

    classe mystring {

  • Créer des fonctions publiques pour faire face à toutes les fonctions dans votre conception. Voici le code:

    public:

    mystring () - // crée une chaîne vide

    mystring (const char *) - // crée et initialise la chaîne à une certaine valeur (dans la parenthèse)

    ~ Mystring () - // désalloue ressources de mémoire dynamique

    int getsize () - // nous montre la taille de la chaîne

    char * outputmystring () - // émet la chaîne

  • Créer des membres de données privées pour stocker les données de votre chaîne. Voici le code:

    privé:

    int _size- // stocke la taille de chaîne

    carboniser _mystr- /ceci est un élément de données qui pointe sur le premier caractère de la chaîne. Si nous savons que le premier caractère et la taille de la chaîne, nous pouvons accéder à tous ses caractères * /




    }

  • Tapez votre code complet du fichier d`en-tête (vous pouvez copier et coller à partir d`ici):

    / MyString.h /

    classe mystring {

    public:

    mystring ();

    mystring (const char *);

    ~ Mystring ();

    int getsize ();

    char * outputmystring ();

    privé:

    int _size;

    char * _mystr;

    }

La mise en œuvre de la classe String - Code de fichier

  • Créez un fichier correspondant du RPC appelé mystring.cpp (Fichier-gt; Ajouter -gt; fichier cpp - fichier vide). Ici, vous inclure les définitions de la fonction sur le fichier d`en-tête de MyString.h. Tout comme un livre, les fichiers d`en-tête stockent les principaux tittles, et les fichiers cpp stockent le contenu et les définitions de chaque tittle.

  • Inclure le cstring et les bibliothèques iostream. Voici le code:

    / mystring.cpp /

    comprendre
    comprendre
  • Définir les fonctions de construction (construction vide et de construction de paramètres). Voici le code:

    mystring :: mystring () // constructeur vide

    {

    _size = 0;

    _mystr = 0;

    }

    mystring :: mystring (const char str) /constructions et initialise chaîne en valeur * /

    {

    if (str!)

    {_size = 0- _mystr = 0-} / si aucune valeur, chaîne est vide /

    autre

    {_size = Strlen (str);

    _string = new char [_size +1] - /ceci est notre allocation dynamique de mémoire, en fonction de la taille du paramètre/

    StrCopy (_string, str);

    }

    }

  • Définir la fonction destructor. Cette fonction est utilisée pour dé-allouer la mémoire dynamique. Chaque fois que la mémoire utilisée changements, l`ordinateur doit savoir qu`il peut utiliser cette partie de la mémoire pour d`autres purposes- ce processus est appelé de-allocation. Le code:

    mystring :: ~ mystring

    {Delete [] _mystr-} /Libère notre mémoire dynamique /

  • Définir la fonction pour renvoyer la taille de la chaîne et la sortie de la chaîne. La taille est simple. Juste afficher la valeur de _size:

    int mystring :: getsize () {return (_size) -}

    À la sortie de la chaîne, nous sortie chaque caractère jusqu`à ce que nous atteindre la fin de la chaîne (qui se trouve être la valeur de _size):

    mystring vide :: outputmystring ()

    {For (int count = 0 - count == taille - count ++)

    {cout lt; lt; _mystr [count] -}

    cout lt; lt; endl-}

  • Voici votre code complet pour mystring.cpp:

    / mystring.cpp /

    comprendre
    comprendre

    mystring :: mystring () // constructeur vide

    {

    _size = 0;

    _mystr = 0;

    }

    mystring :: mystring (const char str) /constructions et initialise chaîne en valeur * /

    {

    if (str!)

    {_size = 0- _mystr = 0-} / si aucune valeur, chaîne est vide /

    autre

    {_size = Strlen (str);

    _string = new char [_size +1] - /ceci est notre allocation dynamique de mémoire, en fonction de la taille du paramètre/

    StrCopy (_string, str);

    }

    }

    mystring :: ~ mystring

    {Delete [] _mystr-} /Libère notre mémoire dynamique /

    int mystring :: getsize () {return (_size) -}

    mystring vide :: outputmystring ()

    {For (int count = 0 - count == taille - count ++)

    {cout lt; lt; _mystr [count] -}

    cout lt; lt; endl-}

Conseils & Avertissements

  • Vous pouvez toujours améliorer votre classe mystring en ajoutant des fonctions et des opérateurs. Soyez prudent lors de la frappe, même de petites erreurs peuvent causer des erreurs qui sont très difficiles à retracer.

AUTRES

» » » » Comment créer une chaîne dynamique dans c ++