C ++: strcpy Fonction copies null?

Tout en utilisant les fonctions de manipulation de chaîne specific strcpy j'ai fait ce petit programme.

char s1[8]="Hellopo";
char s2[4]="sup";
strcpy(s1,s2);
cout<<s1<<endl;

Lorsque j'ai imprimé s1 Il fait juste imprimé "sup". Je m'attendais à imprimer "suplopo".

Alors j'ai fait ce:

cout<<s1+4 << endl;

Imprimer "boa";

Et La sortie de cette: cout<<s1+3<<endl; avait rien

Donc après avoir réfléchi un peu à ce sujet.

Je suis venu à cette conclusion. Depuis C++ s'arrête outputing la chaîne une fois qu'il atteint le terminateur null. Par conséquent, la valeur null doit avoir été copié dans le strcpy fonction. Résultant de cette chaîne:

s - u - p - \0 - o - p - o -\0;

Veuillez me dire si cela est correct ou pas. Et si je ne suis pas veuillez me corriger.

Et si vous avez plus d'infos à fournir s'il vous plaît.

source d'informationauteur Mohamed Ahmed Nabil