memcpy()实现向数组里多次拷贝内容

#include
#include "string.h"
#define u8 unsigned char
#define u16 unsigned int
#define SEND_BUF_SIZE 52 //发送数据长度,最好等于sizeof(TEXT_TO_SEND)+2的整数倍.
//加2是因为在每个字符串后插入了回车换行(\r\n)两个字符
//int main(int argc, char *argv[])//常规方法
//{
// u16 i;
// u8 t=0;
// u8 j,mask=0;
// u8 SendBuff[SEND_BUF_SIZE]={'\0'};
// const u8 TEXT_TO_SEND[]={"0123456789"};
// j=sizeof(TEXT_TO_SEND);
// for(i=0; i //{
// if(t>=j)
// {
// if(mask)
// {
// SendBuff[i]=0x0a;
// t=0;
// }else
// {
// SendBuff[i]=0x0d;
// mask++;
// }
// }else
// {
// mask=0;
// SendBuff[i]=TEXT_TO_SEND[t];
// t++;
// }
// printf("%c",SendBuff[i]);
//}
// return 0;
//}

int main(int argc, char *argv[])//memcpy()函数法
{
u16 i=0;
u8 t=0,j=0;
u8 SendBuff[SEND_BUF_SIZE]={'\0'};
const u8 TEXT_TO_SEND[]={"0123456789"};
t = sizeof(TEXT_TO_SEND); //获取源数组大小
for(i=0; i
{
memcpy(&SendBuff[i],TEXT_TO_SEND,sizeof(TEXT_TO_SEND)); //把源数组的内容拷贝到目标数组
SendBuff[i+t-1]='\0'; //插入结束符
SendBuff[i+t]=0x0d; //插入回车符\r
SendBuff[i+t+1]=0x0a; //插入换行符\n
i+=(t+2); //跳过(字符串的长度+2)重新定位目标数组里的地址
}
for(j=0; j
printf("%c",SendBuff[j]);
}

【memcpy()实现向数组里多次拷贝内容】memcpy()函数的作用和使用方法与memmove()的使用时哼相似,在部分场所可以代替!!!

    推荐阅读