#include #define NULL (0x00) /* インデックス番号を使った場合 */ void myStrcpy1( char* to, char* from ) { long index; index = 0; while( from[index] != NULL ){ to[index] = from[index]; index++; /* インデックスのインクリメント */ } /* NULL を最後につける */ to[index] = NULL; } /* 間接演算子を使った場合 */ void myStrcpy2( char* to, char* from ) { while( *from != NULL ){ *to = *from; to++; /* アドレスのインクリメント */ from++; /* アドレスのインクリメント */ } /* NULL を最後につける */ *to = NULL; } main() { char buf1[100]; char buf2[100]; /* 文字列の初期化 */ buf1[0] = NULL; buf2[0] = NULL; /* 文字列のコピーの呼び出し1 */ myStrcpy1( buf1, "myStrcpy1" ); myStrcpy2( buf2, "myStrcpy2" ); /* 文字列の出力 */ printf( "buf1 = %s\n", buf1 ); printf( "buf2 = %s\n", buf2 ); /* おしまい(^m^) */ return 1; }