C言語 標準関数 | 応用 | サンプル

標準関数
構文
応用

管理人

プライバシーポリシー


書式

#include <string.h>

void * memcpy( void *str1 , const void *str2
                                   , size_t len );

■戻り値:str1の先頭アドレスを返す。

説明

str2からstr1へlen文字数をコピーする。
途中にNULL(\0)があってもlen文字数をコピーする。

コピー後、末尾にNULLを自動で設定しない。

サンプル

#include <string.h>

main() {
  char str1[] = "ABCDE";
  /* 文字列内に\0でNULLを入れる場合の注意事項:
     \0の後ろに0-7の文字を記述すると8進数(3桁)と
     みなされるので\000としなくてはならない。
     尚、"123\08"であればOKであるが、
     特に0-9の文字ならば混乱を避けるために
     "123\0008"と表記した方が良い。
  */

  char str2[] = "123\0004567890";
  char * adr;

  adr = ( char * )memcpy(( void * )str1
                           , ( void * )str2 ,  3 );
  printf( "adr=%s\n" , adr );/* 123DE */

  adr = ( char * )memcpy(( void * )str1
                           , ( void * )"ab\0d" , 4 );
  printf( "adr=%s\n" , str1 );/* ab */

  printf( "str1[3]=%s\n" , &str1[3] );/* dE */
}

実行結果

adr=123DE
adr=ab
str1[3]=dE


Copyright © 2008-2015 http://hitorilife.com All Rights Reserved.