Здравствуйте Mr-Twister, Вы писали:
MT>Сделал программку
MT>MT>#include <stdio.h>
MT>#include <string.h>
MT>char *fi( char * fu, const char * fa, int ee);
MT>int main(void)
MT>{
MT> int number=6;
MT> char s1[20], * s2= "Pruvetiche", *s3;
MT> s3 = fi ( s1, s2 , number);
MT> puts(s3);
MT> return 0;
MT>}
MT>char *fi( char * fu, const char * fa, int ee)
MT>{
MT> strncpy( fu, fa, ee );
MT> return fu;
MT>}
MT>
MT>Но не пойму почему во время выполнения в конце вылетает значок @.
Потому, что strncpy не добавляет в конец строки \0, если копируемое число символов меньше длины копируемой строки.
MT>Хотелось бы чтоб копировалось только 6 указанных букв. Без этих залетных значков @.
char *fi( char * fu, const char * fa, int ee)
{
strncpy( fu, fa, ee );
*(fu+ee)=0;
return fu;
}