C51单片机请教一个C程序模块ucharbuf是从串口收到的一串字符,需要截取从自定义的x位至y位的字符,结果赋值给定义的变量a... C51单片机 请教一个C程序模块 uchar buf是从串口收到的一串字符,需要截取从自定义的x位至y位的字符,结果赋值给定义的变量a 展开
我有一点建议,能使用库函数的,尽量使用库函数。keilc51中的<string.h>中,有一系列的关于内存拷贝方面的函数:externvoid*memcpy(void*s1,void*s2,intn);externvoid*memmove(void*s1,void*s2,intn);//s1:dests2:srcn:len例如使用其中的memmove来实现你要的功能。假设你的x,y是基0的(也就是说0表示第1个字符),则#include"string.h"typedefunsignedchar=uchar;ucharbuf[30];uchara[30];memmove(a,buf+x,y-x+1);说明一下,memcpy和memmove的区别就是:memmove能更好地完成两个内存区域有重叠的情况!