При использовании функций строковой манипуляции, специфически strcpy
Я сделал эту небольшую программу.
char s1[8]="Hellopo";
char s2[4]="sup";
strcpy(s1,s2);
cout<<s1<<endl;
Когда я распечатал s1, на самом деле он просто распечатал "sup". Я ожидал, что он напечатает "suplopo".
Тогда я сделал это:
cout<<s1+4 << endl;
Он напечатал "opo";
И Результат этого: cout<<s1+3<<endl;
ничего не было
Итак, немного подумав об этом.
Я пришел к такому выводу. Поскольку С++ перестает выводить строку, когда она достигает нулевого терминатора. Поэтому нуль должен быть скопирован в функцию strcpy
. Результат в этой строке:
s - u - p -\0 - o - p - o -\0;
Скажите, пожалуйста, правильно это или нет. И если им не поправьте меня.
И если у вас есть дополнительная информация, пожалуйста, сделайте.