Les partenaires publicitaires:

Comment créer une chaîne dynamique en C ++

Les types de données dynamiques ne pas ont une taille fixe. Lorsqu'un ordinateur stocke un numéro, il utilise le même nombre d'octets à enregistrer le numéro "0" et le numéro "20000" Mais essayez de mémoriser une phrase et le panorama change radicalement. Depuis chaque phrase a une longueur différente, la mémoire utilisée pour stocker la phrase doit changer dynamiquement. C standard ne comprend pas un type de données de chaîne, et la conception d'un type de données chaîne dynamique (ou classe string) est devenu presque un rite de passage de tout nouveau C / C ++ programmeur.

Choses que vous devez

  • L'ordinateur
  • C ++ Compiler (recommandé: Visual C ++ Express)

Concevoir une classe String

  1. 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 de l'utilisateur, ou de cession).

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

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

    Rangez la taille.

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

  2. 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 implique une action est une fonction. De notre liste:

    Taille dynamique -> Fonction basée sur comment voulez-vous construire une chaîne.

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

    Sortie de la chaîne -> Fonction.

    Rangez la taille -> données / informations.

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

  3. 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:

    Dynamique Taille - Fonction - Construit la chaîne.

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

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

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

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

La mise en œuvre de la classe String - fichier d'entête

  1. Créer un fichier d'en-tête appelé MyString.h (Fichier -> Ajouter -> Fichier d'en-tête). Un fichier d'en-tête est comme un indice pour votre code.

  2. Définissez votre classe dans le fichier d'en-tête. Ceci est le code:

    classe mystring {

  3. Créer des fonctions publiques pour faire face à toutes les fonctions dans votre conception. Ceci est le code:

    publique:

    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 () - // libère les ressources de mémoire dynamique

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

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

  4. Créer membres privés de données pour stocker les données de votre chaîne. Ceci est le code:

    privé:

    int _size- // stocke la taille de la 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 * /




    }

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

    / MyString.h /

    classe mystring {

    publique:

    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

  1. Créez un fichier correspondant du RPC appelé mystring.cpp (Fichier> Ajouter -> fichier cpp - fichier vide). Ici, vous devez 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 principales tittles, et les fichiers cpp stocker le contenu et les définitions de chaque trait de lettre.

  2. Inclure le cstring et les bibliothèques iostream. Ceci est le code:

    / mystring.cpp /

    comprendre
    comprendre
  3. Définir les fonctions de construction (construction vide et de la construction de paramètre). Voici le code:

    mystring :: mystring () // constructeur vide

    {

    _size = 0;

    _mystr = 0;

    }

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

    {

    si (str!)

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

    autre

    {_size = Strlen (str);

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

    StrCopy (_string, str);

    }

    }

  4. Définir la fonction de destructeur. 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

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

  5. Définir la fonction pour retourner la taille de chaîne et la sortie de la chaîne. La taille est simple. Tout afficher la valeur de _size:

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

    À la sortie de la chaîne, nous allons sortie chaque personnage 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 - comte == taille - nombre ++)

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

    cout lt; lt; endl-}

  6. Voici votre code complet pour mystring.cpp:

    / mystring.cpp /

    comprendre
    comprendre

    mystring :: mystring () // constructeur vide

    {

    _size = 0;

    _mystr = 0;

    }

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

    {

    si (str!)

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

    autre

    {_size = Strlen (str);

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

    StrCopy (_string, str);

    }

    }

    mystring :: ~ mystring

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

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

    mystring vide :: outputmystring ()

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

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

    cout lt; lt; endl-}

  7. 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 entraîner des erreurs qui sont très difficiles à retracer.
» » » » Comment créer une chaîne dynamique en C ++