Ciao a tutti!

Ho 2 quesiti correlati.

1) La funzione strlen mi dà la lunghezza della stringa passata come parametro. Ma contando anche il teminatore di stringa oppure no?

ho fatto questa prova:

codice:
char stringa [10];
cout<<"scrivi una frase"<<endl;
cin.getline (stringa,10);
cout<<"la lunghezza della stringa e': " << strlen(stringa);
inserendo una stringa di 10 caratteri per esempio 1234567890

la funzione strlen mi dice che la stringa ha lunghezza 9.

Perche'?

cin.getline (stringa,10); non dovrebbe leggere 10 caratteri e quindi poi la funzione strlen dirmi che la lunghezza e' 10?

2) Dubbio sorto dal primo.
Se dichiaro:

char stringa [10];

significa che ho 10 posizioni libere + 1 per il terminatore di stringa \0?
oppure che ne ho 9 libere e la decima è per il terminatore di stringa \0?

Grazie in anticipo.