文字列バッファに文字列を指定サイズ分だけコピーする関数です。
CopyMemory()関数の真似で文字列(LPTSTR)バージョンを用意してみました。(戻る)
プロトタイプ宣言
LPTSTR funcCopyString( LPTSTR lpBuff, // 文字列へのポインタ DWORD dwSize, // TCHAR型の文字数 LPCTSTR lpString // TCHAR型の文字列 );
サンプル
// 文字列バッファに指定サイズだけ書き込む extern LPTSTR funcCopyString( LPTSTR lpBuff, DWORD dwSize, LPCTSTR lpString ) { LPTSTR lpTail = lpBuff; if ( dwSize ){ for ( dwSize-- ; dwSize ; dwSize-- ){ if ( *lpString == TEXT('\0') ){ break; } *lpTail++ = *lpString++; } *lpTail = TEXT('\0'); } return lpBuff; } // 使用例 int main( void ) { TCHAR szBuff[ 5 ]; funcCopyString( szBuff, 5, TEXT("あいうえおかきくけこ") ); puts( szBuff ); return 0; }
- lpBuff に文字列のバッファを指定します。
- dwSize に文字列のバッファ容量を指定します。
- lpString に書き込む文字列を指定します。
- CopyMemory()関数とは違い最後に NULL 文字(\0)を書き込みます。
実行結果(ANSI)
あい
実行結果(Unicode)
あいうえ
その他
- funcCopyString 関数は「マルチバイト文字セット」、「Unicode文字セット」の両方に対応しています。
関連記事
- 文字列バッファに NULL 文字を書き込む - funcZeroString()
- 文字列バッファに指定文字を書き込む - funcFillString()
- 文字列バッファに指定サイズだけ書き込む - funcCopyString()
- 文字列バッファの複製文字列を作成 - funcDupString()
- 文字列バッファを行単位で取得 - funcLineString()
- 文字列バッファの改行コードを削除 - funcCRLFString()
- 文字列バッファの基本関数(まとめ)
※コメント投稿者のブログIDはブログ作成者のみに通知されます