編集:例のソースを追加しました。
char source[MAX] = "123456789";
char source1[MAX] = "123456789";
char destination[MAX] = "abcdefg";
char destination1[MAX] = "abcdefg";
char *return_string;
int index = 5;
/* This is how strcpy works */
printf("destination is originally = '%s'\n", destination);
return_string = strcpy(destination, source);
printf("after strcpy, dest becomes '%s'\n\n", destination);
/* This is how strncpy works */
printf( "destination1 is originally = '%s'\n", destination1 );
return_string = strncpy( destination1, source1, index );
printf( "After strncpy, destination1 becomes '%s'\n", destination1 );
この出力を生成したもの:
宛先は元々= 'abcdefg' strcpyの後、宛先は「123456789」になります destination1は元々= 'abcdefg' strncpyの後、destination1は「12345fg」になります
なぜ誰もがこの効果を望んでいるのだろうと私は思います。紛らわしいようです。このプログラムは、基本的に誰かの名前(Tom Brokawなど)をTomBro763でコピーできると思います。
使用しての利点は何である strncpy()
以上は strcpy()
?
strcpy
代わりに使うのだろうstrncpy
?」と尋ねるつもりだったと思います。