_memccpy
バッファーから文字をコピーします。
void *_memccpy(
void *dest,
const void *src,
int c,
size_t count
);
パラメーター
dest
対象となるバッファーへのポインター。src
コピー元へのポインター。c
コピーする最後の文字。カウント
文字数。
戻り値
文字 c をコピーすると、_memccpy 関数はその文字の直後にある dest 内の文字へのポインターを返します。 文字 c がコピーされなかった場合は、NULL を返します。
解説
_memccpy 関数は、src が指す位置から 0 以上の文字を dest が指す位置にコピーします。文字 c をコピーするか、count に指定された文字数をコピーした時点で、処理が中断します。
セキュリティに関するメモ 対象のバッファーのサイズが、コピー元のバッファーのサイズ以上であることを確認してください。 詳細については、「Avoiding Buffer Overruns」を参照してください。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_memccpy |
<memory.h> または <string.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
C ランタイム ライブラリのすべてのバージョン。
使用例
// crt_memccpy.c
#include <memory.h>
#include <stdio.h>
#include <string.h>
char string1[60] = "The quick brown dog jumps over the lazy fox";
int main( void )
{
char buffer[61];
char *pdest;
printf( "Function: _memccpy 60 characters or to character 's'\n" );
printf( "Source: %s\n", string1 );
pdest = _memccpy( buffer, string1, 's', 60 );
*pdest = '\0';
printf( "Result: %s\n", buffer );
printf( "Length: %d characters\n", strlen( buffer ) );
}
出力
Function: _memccpy 60 characters or to character 's'
Source: The quick brown dog jumps over the lazy fox
Result: The quick brown dog jumps
Length: 25 characters