memcpy,memccpy,memmove函數

來源:互聯網
上載者:User

函數原型:extern void *memcpy(void *dest, void *src, unsigned int count)

參數說明:dest為目的字串,src為源字串,count為要拷貝的位元組數。
       
所在庫名:#include <string.h>
 
函數功能:將字串src中的前n個位元組拷貝到dest中。
 
返回說明:src和dest所指記憶體地區不能重疊,函數返回void*指標。

其它說明:暫時無。

執行個體: 

#include <string.h>
#include <stdio.h>

int main()
...{
    char dest[100];
    char *src="I'm sky2098,please do not call me sky2098!";
    memcpy(dest,src,13);   //實現位元組的複製,注意memcpy返回的是void*類型
    printf("The string dest is:  %s ! ",dest);
   return 0;
}

在VC++ 6.0  編譯運行:

可見,實現了前13個位元組的複製。

因為我們為dest初始化分配了100個位元組的空間,所以除了我們複製過來的字元,其餘的都用“/0”填充,列印出來就像上面的那樣。

 

函數原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count)

參數說明:dest為目的字串,src為源字串,ch為終止複製的字元(即複製過程中遇到ch就停止複製),count為要拷貝的位元組數。
       
所在庫名:#include <string.h>
 
函數功能:將字串src中的前n個位元組拷貝到dest中,直到遇到字元ch便停止複製。
 
返回說明:src和dest所指記憶體地區不能重疊,函數返回void*類型指標。

其它說明:暫時無。

執行個體: 

#include <string.h>
#include <stdio.h>

int main()
...{
    char dest[100];
    char *src="I'm sky2098,please do not call me sky2098!";
    memccpy(dest,src,'o',strlen("I'm sky2098,please do"));
    printf("The string dest is:  %s ! ",dest);
   return 0;
}

在VC++ 6.0  編譯運行:

程式實現了只從src中前strlen("I'm sky2098,please do")個字元中拷貝,如果遇到字元'o'則停止拷貝。

函數原型:extern void *memmove(void *dest, const void *src, unsigned int count)

參數說明:dest為目的字串,src為源字串,count為要拷貝的位元組數。
       
所在庫名:#include <string.h>
 
函數功能:將字串src中的前n個位元組拷貝到dest中。
 
返回說明:src和dest所指記憶體地區可以重疊,函數返回void*類型指標。

其它說明:功能於memcpy相同。

執行個體: 

#include <string.h>
#include <stdio.h>

int main()
...{
    char dest[100];
    char *src="I'm sky2098,please do not call me sky2098!";
    memmove(dest,src,strlen("I'm sky2098,please do"));
    printf("The string dest is:  %s ! ",dest);
   return 0;
}

在VC++ 6.0  編譯運行:

 

實現的功能同memcpy是相同的。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.