歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C語言中memcpy和strcpy區別

C語言中memcpy和strcpy區別

1.在使用strcpy函數拷貝字符串時,遇到‘\0'時,將停止拷貝。

2.在使用memcpy函數拷貝內存中數據時,最後一個參數決定拷貝的字節數.

3.memcpy[2]中的到底是什麼呢?答案是:'\0' 。由於'\0'表示字符串結束符,是一個轉義字符,轉義字符是ASCII碼中不可打印的字符,要想輸出'\0',可以使用\\0

#include <stdio.h>
#include <string.h>
int main(int argc,char** argv)
{
        int i = 0;
        char buf[5] = {'1','2','\0','4','5'};    //定義一個數組,其中'\0'表示字符串的結束符。
        char stcpy[5];   
        memset(stcpy,0,10);                      //清零數組
        strcpy(stcpy,buf);
        printf("use strcpy: ");
        for(i = 0; i < 5; i++)
                putchar(stcpy[i]);              //輸出信息為:use strcpy : 12
        putchar('\n');       
        char mcpy[5];
        memcpy(mcpy,buf,5);
        printf("use memcpy: ");
        for(i = 0; i < 5; i++)
                putchar(mcpy[i]);                //輸出信息為: use memcpy:1245
        putchar('\n');                                                                     
        if(mcpy[2] == '\0')
                printf("\\0 \n");                //輸出信息為 \0 return 0;
}

Copyright © Linux教程網 All Rights Reserved