Chinaunix首页 | 论坛 | 博客
  • 博客访问: 70379
  • 博文数量: 21
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 245
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-28 14:14
文章分类

全部博文(21)

文章存档

2011年(1)

2010年(14)

2009年(6)

我的朋友

分类: C/C++

2010-06-20 14:01:36

#ifndef NULL 
#define NULL ((void *)0) 
#endif  
 
/* 
    memcpy的实现代码 
*/ 
void* memcpy(void *pDst, void *pSrc, int iLen)  
{  
    char *pTmp = (char *)pDst;  
    char *pTmp2 = (char *)pSrc;  
 
    if(0 == iLen)  
        return pDst;  
    while(iLen--)  
        *pTmp++ = *pTmp2++;  
    return pDst;  
}  
 
/* 
    memset的实现代码 
*/ 
void* memset(void *pDst, int iSet, int iLen)  
{  
    char *pTmp = (char *)pDst;  
    if(0 == iLen)  
        return pDst;  
    while(iLen--)  
        *pTmp++ = (char)iSet;  
    return pDst;  
}  
 
/* 
    strcpy的实现代码 
*/ 
char *strcpy(char *pDst, char *pSrc)  
{  
    char *pRst = pDst;  
    do 
        *pDst++ = *pSrc;  
    while(*pSrc++);  
    return pRst;  
}  
 
/* 
    strcat的实现代码 
*/ 
char *strcat(char *s, char *a)  
{  
    char *save = s;  
    for(; *s; ++s);  
    while((*s++ = *a++) != 0);  
    return save;  
}  
 
/* 
    strlen的实现代码 
*/ 
int strlen(char *pStr)  
{  
    int iLen = 0;  
    while(*pStr++)  
        iLen++;  
    return iLen;  
}  
 
/* 
    strcmp的实现 
*/ 
int strcmp(char *s, char *t)  
{  
    for(; *s == *t; s++, t++)  
    {  
        if(('\0' == *s) || ('\0' == *t))  
        {  
            if(*s == *t)  
                return 0;  
            else 
                break;  
        }  
    }  
    return ((*s > *t) ? 1 : -1);  
}  
 
/* 
    strncmp的实现 
*/ 
int m_strncmp(char *s, char *t, int n)  
{  
    if(0 == n)  
        return 0;  
    for (; (--n > 0) && (*s==*t); s++,t++)  
    {  
        if ('\0'==*s)  
            return 0;  
    }  
    if(*s == *t)  
        return 0;  
    return ((*s > *t) ? 1 : -1);  
}  
 
/* 
    strstr的实现 
*/ 
char* strstr(char *s, char *find)  
{  
    char c, sc;  
    unsigned int len;  
 
    if ((c = *find++) != 0)   
    {  
        len = lzs_strlen(find);  
        do   
        {  
            do   
            {  
                if ((sc = *s++) == 0)  
                    return (NULL);  
            } while (sc != c);  
        } while (lzs_strncmp(s, find, len) != 0);  
        s--;  
    }  
    return ((char *)s);  
 
阅读(411) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~