memccpy

[機能]

  バッファの先頭から,指定されたバイト数,または,指定された文字までを,他のバッファにコピーします.コピー元とコピー先の領域が一部重なっている場合は,正常に動作しません.その様な場合は,memmove 関数を使用してください.コピー先のバッファアドレスを返します.

[形式]
#include <memory.h>
#include <string.h>

void *memccpy(void *dest, const void *src, int c, size_t count)
	dest  : コピー先へのポインタ
	src   : コピー元へのポインタ
	c     : コピーする最後の文字
	count : コピーする文字数		
[使用例]

  1. バッファから 5 文字,または,文字 d までをコピーします
    #include <stdio.h>
    #include <memory.h>
    #include <string.h>
    
    int main()
    {
    	int len;
    	char *str1 = "bbcdefg";
    	char str2[10];
    
    	memccpy(str2, str1, 'd', 5);
    
    	str2[4] = '\0';
    	len     = strlen(str2);
    
    	printf("結果は %s (長さ %d)\n", str2, len);
    
    	return 0;
    }
    			
    (出力)
    結果は bbcd (長さ 4)			
[参照]

memchr, memcmp, memmove, memset, memcpy

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引