Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> C /C + + Programming >> .

Come creare una stringa dinamica in C + +

tipi di dati dinamici non hanno una dimensione fissa . Quando un computer memorizza un numero , utilizza lo stesso numero di byte per memorizzare il numero " 0 " e il numero " 20000 ". Ma provate a memorizzare una frase e il panorama cambia radicalmente. Dal momento che ogni frase ha una lunghezza diversa , la memoria utilizzata per memorizzare la frase deve cambiare in modo dinamico . Standard C non ha incluso un tipo di dati stringa , e la progettazione di un tipo di dati stringa dinamica ( o di classe string ) è diventato quasi un rito di passaggio di ogni nuovo programmatore C + C /+ . Cose che ti serviranno
Informatica C + + Compiler (consigliato : Visual C + + Express ) economici Mostra più istruzioni
Progettazione di una stringa di Classe
1

visualizzare le caratteristiche della classe string . La stringa deve avere le seguenti : .

Dimensione dinamico ( cambia con l'input dell'utente , o assegnazione ) per

in grado di conoscere la dimensione della vostra stringa

uscita la stringa . memorizzato.

Conservare le dimensioni .

memorizzare il primo carattere della nostra stringa ( dato che è dinamico , non si sa dove finisce. ) economici 2

separato che dispone della classe string sono informazioni ( o dati) e quali sono le funzioni . Solitamente , tutto ciò che comporta l'azione è una funzione. Dalla nostra lista : .

Dimensione dinamica - > funzione in base a come si fa a costruire una stringa

conoscere la dimensione della stringa - > Funzione

uscita il . stringa - . > Funzione

Conservare le dimensioni - . > dati /informazioni

Conservare l' inizio della stringa . - > dati /informazioni
3

definire il ruolo di ogni funzione , e il tipo di dati membro della classe in termini semplici . Dalla lista precedente :

dinamica Dimensione - Funzione - Costruisce la stringa

conoscere la dimensione - Funzione - restituisce la dimensione di stringa

uscita la stringa - Funzione - Restituisce il . . contenuto della stringa

Conservare le dimensioni - . dati /informazioni - deve essere un numero intero positivo

Conservare l' inizio della stringa - . dati /informazioni - . carattere

Implementazione della classe String - File Header
4

Creare un file header chiamato mystring.h ( File - > Aggiungi - > File di intestazione ) . Un file di intestazione è come un indice per il vostro codice .
5

Definire la classe nel file di intestazione . Questo è il codice :
classe

mystring {
6

Creare funzioni pubbliche per affrontare tutte le funzioni nella progettazione. Questo è il codice :

pubblico :

mystring ( ) ; //crea una stringa vuota

mystring ( const char * ) ; //crea e inizializza la stringa di certo valore ( tra parentesi ) per

~ mystring (); //dealloca risorse di memoria dinamica

int getSize ( ) ; //ci mostra la dimensione della stringa

char * outputmystring (); //output la stringa
7

Creare dati membro privati ​​per memorizzare i dati della vostra stringa. Questo è il codice :

privato :

int _size ; //memorizza la stringa di formato

char * _mystr ; /* questo è un membro di dati che punta al primo carattere della stringa . Se sappiamo che il primo carattere e la dimensione della stringa , si può accedere a tutti i suoi caratteri * /

}
8

Digitare il codice del file di intestazione completa ( è possibile copiare e incollare da qui ) :

/* mystring.h * /
classe

mystring {

pubblico :

mystring ( ) ;

mystring ( const char *) ;

~ mystring ();

int getsize ();

char * outputmystring ();

privato :

int _size ;

char * _mystr ;

}
Implementare la classe String - Codice File
9

Creare un file CPP corrispondente chiamato mystring.cpp ( File - > Aggiungi - > file cpp - file vuoto ) . Qui , potrete includere le definizioni per la funzione del file di intestazione mystring.h . Proprio come un libro , file header memorizzano i principali tittles , e cpp file memorizzano i contenuti e le definizioni di ciascun apice .
10

Includere il cstring e librerie iostream . Questo è il codice :

/* mystring.cpp * /# include


# include
11

Definire le funzioni di costruzione ( costruzione di vuoto e di costruzione del parametro ) . Ecco il codice :

mystring :: mystring ( ) //costruttore vuoto

{

_size = 0;

_mystr = 0 ; < br

}

mystring > :: mystring (const char * str ) /* costruisce e inizializza stringa in un valore * /

{

if (! str)

{ _size = 0; _mystr = 0; } /* se nessun valore , stringa è vuota * /

altro

{ _size = strlen ( str) ;

_string = new char [ _size +1 ] ; /* questa è la nostra allocazione dinamica della memoria , in base alla dimensione del parametro * /

StrCopy ( _string , str) ;

} }


12

definire la funzione distruttore . Questa funzione viene utilizzata per de- allocare la memoria dinamica . Ogni volta che la memoria utilizzata modifiche , il computer deve sapere che può usare quella parte di memoria per altri scopi , questo processo è chiamato deallocazione . Il codice :

mystring :: ~ mystring

{ eliminare [ ] _mystr ; } /* dealloca nostra dinamica di memoria * /
13

definire la funzione di restituire la dimensione della stringa e la stringa di output . Il formato è semplice. Basta visualizzare il valore di _size :

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

Per emettere la stringa , si produce ogni singolo personaggio fino a quando si raggiunge la fine del stringa ( che risulta essere il valore di _size ) :

vuoto mystring :: outputmystring ( ) per

{for ( int count = 0; count == dimensioni ; count + + ) per

{ cout << _mystr [ count] ; }

cout << endl; }
14

Ecco il codice completo per mystring.cpp :

/* mystring.cpp * /# include


# include

mystring :: mystring ( ) //Vuoto costruttore

{

_size = 0;

_mystr = 0; }


mystring :: mystring ( const char * str ) /* costruisce e inizializza stringa in un valore * /

{

if ( str ) per

{ _size = 0; ! _mystr = 0; } /* se non valore , stringa è vuota * /

altro

{ _size = strlen ( str) ;

_string = new char [ _size +1 ] ; /* questo è il nostro dinamico allocazione della memoria , in base alla dimensione del parametro * /

StrCopy ( _string , str) ; }


}

mystring :: ~ mystring

{ eliminare [ ] _mystr ; } /* dealloca nostra dinamica di memoria * /

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

vuoto mystring : : outputmystring ( ) per

{for ( int count = 0; count == dimensioni ; count + + ) per

{ cout << _mystr [ count] ; }

cout << endl; }

 

Programmazione © www.354353.com