Salve a tutti.
La volta scorsa abbiamo visto le potenzialità della classe generica CObject.
Analizzando il codice sicuramente avrete visto che nella classe CClassB
ho utilizzato (semplicemente x distinguerla dalla classe CClassA )
il membro m_str che altro non era che una stringa di massimo 9 caratteri (uno
carattere come sapete dal corso di C è riservato per il terminatore di fine
stringa \0).
La domanda che ora sorge è:
-E’ se dovessi immettere una stringa di oltre 9 caratteri?
-Esiste una classe delle MFC che ci consentano di creare una stringa arbitraria
e dinamicamente modificabile in grandezza?
La risposta è si. Tale classe è detta CString e la analizzeremo in
questa lezione.
Da premettere che tale classe non deriva da CObject ma data la sua
importanza nella programmazione conviene fare un piccolo stacco dalle classi
derivanti da CObject per analizzarla (Torneremo nelle prossime lezioni
ad analizzare le classi derivanti da CObject con + esperienza delle
MFC e con la potenza della conoscenza di questa nuova classe).
Alla fine della lezione troverete i sorgenti di un piccolo programmino che
motra la potenza della classe CString stessa.
Bene, analizziamo alcuni metodi della classe. Alcuni di questi metodi verranno
usati nel nostro esempio a fine pagina.
Per maggiori riferimenti consultare le MSDN della Microsoft.
CString
Construttori
| CString() |
Costruttore di default |
| CString(const CString& src) |
Costruttore per copia (Copia il contenuto della CString src nella nuova stringa allocata) |
| CString(TCHAR carattere, int numerorip=1) |
Crea
la nuova CString assegnandogli numerorip di caratteri (carattere) |
| CString(LPCSTR lpstr, int lunghezza) |
Crea
la nuova CString dalla CString lpstr copiandovi solo i primi “lunghezza”
caratteri |
| int GetLength() const |
Restituisce
il numero di caratteri presenti nella stringa |
| BOOL IsEmpty() const |
Restituisce TRUE se la string è vuota, FALSE altrimenti |
| void Empty(); |
Resetta la stringa portandola a lunghezza nulla (stringa vuota) |
| TCHAR GetAt(int id) const |
Restituisce
il carattere alla posizione id |
| TCHAR operator [](int id) const |
Come la GetAt |
| void SetAt(int id, TCHAR c) |
Setta
il carattere c alla posizione id della stringa |
| operator LPCSTR() const |
Accesso diretto alla memoria allocate nella stringa, utile nelle conversioni da CString a char [] |
Assegnamenti, Concatenatori
e Metodi di Confronto
| const CString& operator = (const CString& src) |
Assegna
alla nuova string ail valore contenuto in src |
| friend CString operator + (const CString& src1, const CString& src2) |
Concatena
2 stringhe. |
| constCString& operator +=( const CString& string ); |
Concatena
alla stringa su cui è applicato la nuova stringa string |
| BOOLoperator ==( const CString& s1, const CString& s2 ); |
Restituisce
TRUE se le due stringhe s1 e s2 sono uguali, FALSE altrimenti |
| CString Mid(int primo, int cnt) const |
Estrae
dalla stringa la sottostringa che parte dalla posizione primo ed è composta
da cnt caratteri |
| CString Left(int cnt) const |
Estrai
i primi cnt caratteri dalla stringa partendo da sinistra |
| CString Right(int cnt) const |
Estrai
i primi cnt caratteri dalla stringa partendo da destra |
Bene, nell’esempio allegato troverete gli utilizzi di queste
funzioncine.
A voi il compito di analizzarne i sorgenti come esercizio, io
già ho fatto il mio compito nel fare il programma.
E poi sapete, sono nato stanco e vivo per riposare :-)
Vabbé và, vi mostro nel frattempo che il vostro modem 56K scarichi
il mio programmino la schermata principale va.
E poi non dite che so’ cattivo ok?
Torna all'indice Generale del corso di Corso di Visual C++ di Software Planet