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;
}