Normalmente , un programmatore può recuperare la lunghezza di una frase ( o una stringa ) in qualsiasi " lunghezza ( ) " della stringa metodo C + + programma di chiamate. Tuttavia, le stringhe come implementati in C + + non erano sempre disponibili , ed i programmatori non hanno avuto accesso a metodi già pronti come la lunghezza ( ) . Contando la lunghezza di una stringa senza usare questo costruito nel metodo comporta stringa di comprensione , array di caratteri in stile C , e come scorrere su di loro . C + + e C Stringhe Stringhe
In C + + , il built-in tipo di dati " stringa " rappresenta frasi , frasi o parole. Tuttavia, il tipo di dati String rappresenta in realtà ciò che i programmatori chiamano una stringa " c -style" . Nella lingua originale di C , i programmatori memorizzati frasi come collezioni (o array ) di caratteri. Così, mentre in C + + , una dichiarazione di variabile frase assomiglia :
string str = " Ciao " ;
in C , la stessa dichiarazione si presenta come :
char str [ 50 ] = " Ciao " ;
Dove " str " rappresenta un array di 50 caratteri. Inoltre , dal momento che le stringhe in stile C sono semplicemente array , tutti finiscono con un carattere di terminazione Null ( " \\ 0" ), che indica la fine della stringa .
Il " c_str ( ) " Metodo
la cosa interessante di stringhe in C + + è che sono una classe , e come classe contiene i metodi per fare il lavoro sulla corda . Uno di questi metodi ( " c_str ( ) ") restituisce una stringa in stile C che rappresenta la stringa C + + . Ciò significa che il valore di ritorno finirà come un array di caratteri che contiene i caratteri della stringa , incluso il carattere di terminazione null.
Copia C String
il < p > per fare effettivamente qualcosa con la stringa di C - stile recuperato da c_str ( ) , il programmatore ha bisogno di metterlo in un array di caratteri . Ciò richiede il metodo " strcpy ", che copiare un array di caratteri a un altro :
# include
# include
# include < ; iostream >
using namespace std;
string str = " Una stringa " ;
char str2 [ 50 ] ;
strcpy ( str2 , str . c_str ( ) ) per
Ora , la rappresentazione di stringa C - stile di " str " copierà nella matrice di carattere " str2 " ( tra cui null- carattere) .
conteggio del personaggi
Ora che il programmatore ha una copia matrice della stringa , compreso il carattere nullo che informerà il programmatore quando la stringa finisce , diventa una questione di caratteri semplicemente contando fino a quando il programma colpisce il nulla carattere :
int i = 0;
while (! str2 [ i] = " \\ 0 " ) {
i + + Commercio
}
cout << i + 1 ;
il ciclo "while" controlla ogni personaggio fin dall'inizio ( la posizione del carattere 0 ) fino a raggiungere il carattere null . Poi , il programma stampa i +1 ( perché l'indice inizia da 0 , e la posizione del carattere nullo non viene conteggiato ) che si traduce in un valore di ritorno di 8 .