Dynamiske datatyper har ikke en fast størrelse . Når en computer lagrer et nummer , det bruger samme antal bytes at gemme nummeret " 0 " og nummeret " 20000 ". Men prøv at gemme en sætning , og panorama drastisk . Da hver sætning har en forskellig længde, hukommelse, der bruges til at lagre den sætning skal ændres dynamisk. Standard C omfatter ikke en streng datatype , og designe en dynamisk string datatype ( eller snor klasse) er blevet næsten en overgangsrite af nye C /C + + programmør. Hvad du har brug
Computer
C + + Compiler (anbefalet : Visual C + + Express)
Vis Flere Instruktioner
Design en String Class
1
Visualiser de funktioner af din streng klasse. Dit streng skal have følgende: .
Dynamic størrelse ( ændringer med bruger-input, eller overdragelse )
Være i stand til at kende størrelsen på din streng
Output strengen. gemt i hukommelsen.
Store størrelse .
Store det første tegn i vores string (da det er dynamisk, behøver du ikke vide , hvor det ender . )
2 < p> Separat hvilke funktioner på din streng klasse er information (eller data) og hvilke der er funktioner. Normalt , noget, der indebærer handling er en funktion . Fra vores liste: .
Dynamisk størrelse - > Funktion baseret på, hvordan du konstruerer en streng
kender størrelsen af strengen - > Funktion
Output . string - . > Funktion
Store størrelse - . > data /information
Store begyndelsen af strengen - . > data /information
3
Definer , hvilken rolle hver funktion og den type data medlemmer af din klasse i enkle vendinger . Fra den tidligere liste : Hej
Dynamisk Size - Funktion - Konstruerer strengen
kende størrelsen - Funktion - Returns string size
Output strengen - Funktion - Returnerer . . string indhold
Store størrelse - . data /information - skal være et positivt heltal
Store begyndelsen af strengen - . data /information - . en karakter
< br > Implementering af String Class - header File
4
Opret en header fil kaldet mystring.h ( Filer - > Tilføj -> header File) . En header fil er som et indeks for din kode .
5.
Definer din klasse i header filen. Dette er koden : Hej
class myString {
6
Opret offentlige funktioner til at løse alle de funktioner i dit design. Dette er koden : Hej
offentlig : Hej
myString () //opretter en tom streng
myString ( const char * ) //opretter og initialiserer strengen til vis værdi ( i parentes )
~ myString ( ) //deallocates dynamiske hukommelse ressourcer
int getsize () //viser os størrelsen af strengen
char * outputmystring ( ) //udgange strengen
7
Opret private data medlemmer til at gemme data på din streng. Dette er koden : Hej
privat : Hej
int _size //gemmer strengen størrelse
char * _mystr /* dette er en data medlem , der peger på den første tegn i strengen . Hvis vi ved det første tegn og størrelsen af strengen , kan vi få adgang til alle sine karakterer * /
}
8
Type din komplette header fil kode (du kan kopiere og indsætte herfra ) : Hej
/* mystring.h * /
class myString {
offentlig : Hej
myString ();
myString ( const char *)
~ myString ();
int getsize ();
char * outputmystring ();
privat : < br >
int _size ,
char * _mystr ,
}
Gennemførelse af String Class - Code File
9 < p > Lav et matchende CPP fil kaldet mystring.cpp ( fil-> Tilføj -> cpp fil - tom fil ) . Her vil du medtage definitioner for funktionen på mystring.h header fil. Ligesom en bog , gemmer headerfiler de vigtigste tittles og cpp filer gemme indholdet og definitioner af hver tøddel .
10
Medtag CString og iostream biblioteker. Dette er koden : Hej
/* mystring.cpp * /
# include
# include
11 < p> Definer byggeri funktioner ( tom konstruktion og parameter konstruktion) . Her er koden : Hej myString :: myString ( ) //Tom constructor
{
_size = 0;
_mystr = 0; < br >
}
myString :: myString ( const char * str ) /* konstruktioner og initialiserer streng til en værdi * /
{
if (! str )
{ _size = 0; _mystr = 0 ;} /* Hvis ingen værdi , snor er tom * /
ellers
{ _size = strlen ( str ) ; < br >
_string = new char [ _size +1 ] /* dette er vores dynamiske hukommelse tildeling , baseret på størrelsen af parameteren * /
strcopy ( _string , str. ),
< p >}
}
12
Definer destructor -funktionen. Denne funktion bruges til at de- allokere den dynamiske hukommelse. Hver gang den hukommelse, der anvendes ændringer , skal computeren vide, at det kan bruge den del af hukommelsen til andre formål denne proces kaldes de- allokering . Koden : Hej
myString :: ~ myString
{ slet [ ] _mystr ;} /* deallocates vores dynamiske hukommelse * /
13
Definer funktionen til at returnere strengen størrelse og output strengen . Størrelsen er ligetil . Bare vise værdien af _size : Hej
int myString :: getsize () { return ( _size );}
For at udlæse strengen , vil vi udsende hver karakter , indtil vi når til slutningen af streng ( hvilket sker for at være værdien af _size ) : Hej
void myString :: outputmystring ()
{ for (int count = 0; count == størrelse , count + +)
< p> { cout << _mystr [ count ] ;}
cout << endl; }
14
Her er din komplette kode til mystring.cpp : < br >
/* mystring.cpp * /
# include
# include
myString :: myString ( ) //tom konstruktør
{
_size = 0;
_mystr = 0;
}
myString :: myString ( const char * str ) /* konstruktioner og initialiserer streng til en værdi * /
{
if ( str. )
{ _size = 0; ! _mystr = 0 ;} /* hvis der ikke værdi , string er tom * /
ellers
{ _size = strlen ( str ),
_string = new char [ _size +1 ] /* dette er vores dynamiske hukommelse tildeling , baseret på størrelsen af parameteren * /
strcopy ( _string , str. ),
}
}
myString :: ~ myString
{ slet [ ] _mystr ;} /* deallocates vores dynamiske hukommelse * /
int myString :: getsize () { return ( _size );}
void myString : : outputmystring ()
{ for (int count = 0; count == størrelse , count + +)
{ cout << _mystr [ count ] ;}
cout << endl; }