プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

文字列バッファに指定サイズだけ書き込む - funcCopyString()

2010年02月13日 20時32分00秒 | 便利ライブラリ関数

文字列バッファに文字列を指定サイズ分だけコピーする関数です。
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文字セット」の両方に対応しています。

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 文字列バッファに指定文字を... | トップ | 文字列バッファの複製文字列... »
最新の画像もっと見る

コメントを投稿

便利ライブラリ関数」カテゴリの最新記事