memset memcpy strcpy strcat 用法 技巧

来源:互联网 发布:怎么看淘宝订单排名 编辑:程序博客网 时间:2024/04/29 00:25
char * strcat(char * dest, const char * src){
         char *tmp = dest;
         while (*dest) 
              dest++;
        while ((*dest++ = *src++) != '/0')
                ;
         return tmp;
}

static char*strcpy (char *s1, const char *s2){
        char *s = s1;
         for (s = s1; (*s++ = *s2++) != '/0'; )
                 ;
         return (s1);
 }

static voidmemcpy(registers *dptr, registers *sptr, int n){
         unsigned char *dreg;
         unsigned char *sreg;
        for (dreg = (unsigned char*)dptr, sreg = (unsigned char*)sptr; n >; 0; n--)                *dreg++ = *sreg++;
 }

memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;例:char a[100];  memset(a, '/0', sizeof(a));

memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。

strcpy就只能拷贝字符串了,它遇到'/0'就结束拷贝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘/0’之前)是否超过50位,如超过,则会造成b的内存地址溢出。