Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> C /C + + -programmering >> Content

    Hur man skapar en dynamisk String i C + +

    Dynamiska datatyper inte har en fast storlek . När en dator lagrar ett nummer , använder den samma antal byte att lagra numret " 0 " och numret " 20000 . " Men försök att spara en mening och de förändringar panorama dramatiskt . Eftersom varje mening har en annan längd , har minnet används för att lagra den meningen att ändras dynamiskt. Standard C innehöll inte en sträng datatyp , och utforma en dynamisk sträng datatyp ( eller string class ) har nästan blivit en övergångsrit av nya C /C + + -programmerare . Saker du behöver
    Computer
    C + + kompilator ( rekommenderad : Visual C + + Express )
    Visa fler instruktioner
    Design en strängklassen
    1

    Visualisera funktioner av din sträng klass . Din sträng måste ha följande : .

    Dynamisk storlek ( förändringar med indata eller tilldelning ) katalog

    kunna veta storleken på din sträng

    Output strängen . lagras i minnet .

    Store storleken .

    Store första tecknet i vår sträng ( eftersom den är dynamisk , du vet inte var det slutar . )
    2

    Separat vilka funktioner i din sträng klass är informationen ( eller data ) och vilka som är funktioner . Vanligtvis är allt som innebär åtgärden en funktion . Från vår lista : .

    Dynamisk storlek - > funktion baserad på hur du konstruerar en sträng

    vet storleken på strängen - > Funktion

    Utgång till . string - . > Funktion

    Store storlek - . > data /information

    Store i början av strängen - . > data /information
    3

    definiera rollen av varje funktion , och vilken typ av data som medlemmar i din klass i enkla termer . Från föregående lista :

    Dynamic Storlek - Funktion - Konstruerar strängen

    veta storleken - Funktion - Returns string storlek

    Output strängen - Funktion - returnerar . . string innehåll

    Store storlek - . uppgifter /information - måste vara ett positivt heltal

    Store i början av strängen - . uppgifter /information - . en karaktär

    Implementera strängklassen - Header File
    4

    Skapa en header -fil som heter mystring.h ( Arkiv - > Lägg till - > Header File ) . En header -fil är som ett index för din kod .
    5

    Definiera din klass i sidhuvudet filen . Detta är koden :

    class MyString {
    6

    Skapa offentliga funktioner för att hantera alla funktioner i din design . Detta är koden :

    allmänheten :

    MyString ( ) , //skapar en tom sträng MyString

    ( const char * ) , //skapar och initierar strängen till ett visst värde ( i parentes ) katalog

    ~ MyString ( ), //​​deallokerar dynamiska minnesresurser

    int getSize ( ), //​​visar oss storleken av strängen

    char * outputmystring ( ) , //​​utgångar strängen
    7

    Skapa privata data medlemmar att lagra data i din sträng . Detta är koden :

    privat :

    int _size , //​​lagrar strängen storlek

    char * _mystr , /* Detta är en data- medlem som pekar på första tecknet i strängen . Om vi vet det första tecknet och storleken på strängen , kan vi komma åt alla sina karaktärer * /

    }
    8

    Skriv din fullständiga sidhuvudfilen kod ( du kan kopiera och klistra härifrån ) :

    /* mystring.h * /

    class MyString {

    allmänheten :

    MyString ( ) ;

    MyString ( const char *),

    ~ MyString ();

    int getSize ();

    char * outputmystring ();

    privat:

    int _size ,

    char * _mystr ,

    }
    Implementera strängklassen - Code File
    9

    Skapa ett matchande CPP fil som heter mystring.cpp ( Arkiv - > Lägg till - > cpp fil - tom fil ) . Här kommer du bland annat definitionerna för funktionen på mystring.h header-fil . Precis som en bok , header-filer lagrar de huvudsakliga tittles och cpp filer lagra innehållet och definitioner av varje bokstav .
    10

    Inkludera CString och iostream biblioteken . Detta är koden :

    /* mystring.cpp * /

    # include

    # include
    11

    Definiera bygg funktioner ( tom konstruktion och parameter konstruktion ) . Här är koden :

    MyString :: MyString ( ) //tom konstruktor

    {

    _size = 0 ;

    _mystr = 0 ;

    }

    MyString :: MyString ( const char * str ) /* konstruktioner och initierar sträng till ett värde * /

    {

    if ( ! str )

    { _size = 0; _mystr = 0 ; } /* om inget värde är sträng tom * /

    annat

    { _size = strlen ( str ) ;

    _string = new char [ _size +1 ] ; /* detta är vår dynamisk minnesallokering , baserat på storleken på parametern * /

    strcopy ( _string , str ) ;

    }

    }
    12

    Definiera destructor funktionen . Denna funktion används för att de- allokera det dynamiska minnet . Varje gång minnet som används förändringar måste datorn veta att den kan använda den del av minne för andra ändamål, denna process kallas avallokering . Koden :

    MyString :: ~ MyString

    { radera [ ] _mystr ;} /* avallokerar vår dynamiska minne * /
    13

    Definiera funktionen att returnera strängen storlek och ljusflöde strängen. Storleken är enkel. Bara visa värdet av _size :

    int MyString :: getSize ( ) {return ( _size ) ;}

    att mata strängen , kommer vi mata varje tecken tills vi når slutet av string ( som råkar vara värdet av _size ) :

    void MyString :: outputmystring ( ) katalog

    { for ( int count = 0; count == storlek , count + + ) katalog

    { cout << _mystr [ count ] ; }

    cout << endl; }
    14

    Här är din kompletta koden för mystring.cpp :

    /* mystring.cpp * /

    inkluderar #


    # include

    MyString :: MyString ( ) //tom constructor

    {

    _size = 0 ;

    _mystr = 0 ;

    }

    MyString :: MyString ( const char * str ) /* konstruktioner och initierar sträng till ett värde * /

    {

    if ( str ) katalog

    { _size = 0 ; ! _mystr = 0 ; } /* om ingen värde , sträng är tom * /

    annat

    { _size = strlen ( str ) ;

    _string = new char [ _size +1 ] ; /* detta är vårt dynamiska minnesallokering, baserat på storleken av parametern * /

    strcopy ( _string , str ) ;

    }

    }

    MyString :: ~ MyString

    { radera [ ] _mystr ;} /* avallokerar vår dynamiska minne * /

    int MyString :: getSize ( ) {return ( _size ) ;}

    void MyString : : outputmystring ( ) katalog

    { for ( int count = 0; count == storlek , count + + ) katalog

    { cout << _mystr [ count ] ; }

    cout << endl ; } Addera

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur att identifiera de typer av indata
    ·Hur förstå C + + kompilatorer
    ·Hur man skapar ett minne pekare i C
    ·Hur man hanterar Browser Stäng Evenemang i C
    ·Hur att beräkna storleken av element i buffertar i C
    ·Beskrivning av en C + + Funktion & hur det orsakar en b…
    ·Så här konfigurerar Joomla Debugging i Eclipse
    ·Hur du visar antalet tecken i en String
    ·Hur man deklarerar en statisk variabel i C
    ·Hur fixar Visual C Påstående Underlåtenhet
    Utvalda artiklarna
    ·Hur man gör en Stickman i C + +
    ·Hur till Redigera Pyo & PYC Filer
    ·Hur fixar C + + Error R6002
    ·Konvertera DataTables till Strings
    ·Konvertera platta filer till XML
    ·Hur kan man överföra filer med Ajax och PHP
    ·Funktion Display i Java
    ·Konvertera High Level kod till Assembly Language
    ·MySQL förenar Tutorial
    ·Hur man ansluter till en fjärrdatabasservern för MySQ…
    Copyright © Dator Kunskap http://www.dator.xyz