strncpy
私は文字列から2文字をコピーしたいが、3文字をコピーしたいときには同じコードが動作するようにすることができない。この例ではC strncpy 2 char
は、私は変数 '' に12を格納するstrncpy()
が必要:
void main(){
const char* from = "12345678";
char *to = (char*) malloc(3);
strncpy(to, from, 2);
printf("%s", to);
free(to);
}
が、私はmalloc(4)
でstrncpy(to, from, 3)
を使用する場合、それは大丈夫動作します。これを行うにはどんなソリューションですか?
問題文が単純に「機能しない」場合は、解決策を提示することは困難です。実際の結果とどのように違うのか、そしてどのようなことが起こるのかをより完全に説明するために質問を編集してください。何が良い説明になるかについてのヒントについては、[ask]を参照してください。 –
ドキュメントを読んでください:sourceがnumよりも長い場合、ヌル文字は暗黙的に最後に付加されません。 – Boiethios
未来のヒント: 'strncpy'を使わないでください。ほとんどの場合、あなたが望むことをしません。 –