您的位置:首页 > 其它

常用辅助函数集合

2013-10-28 17:47 218 查看
1. strncpy源码char *strncpy(char *dest, const char *src, size_t count){    char *tmp = dest;    while (count) {        if ((*tmp = *src) != 0)            src++;        tmp++;        count--;    }    return dest;}返回dest指针的目的是链式表达式2. strlen源码(1)intmyStrlen(constchar*str)
{
assert(str != NULL);
int len = 0;
while ((*str++) != '\0') len++;
return len;
}
(2)不带变量,递归方式
int myStrlen(const char *str)
{
assert(str != NULL);
return *str == '\0' ? 0 : (1+myStrlen(++str));
}
3. strcmp源码
int myStrcmp(const char *str1, const char *str2){    assert(str1 != NULL && str2 != NULL);     int ret = 0;     while (!(ret=*(unsigned char *)str1 - *(unsigned char *)str2) && *str1)    {        str1++;         str2++;     }    if (ret < 0) ret = -1;     else if (ret > 0) ret = 1;     return ret; }
4. strcat源码char *myStrcat(char *strDest, const char *strSrc){    char *address = strDest;     assert(strDest != NULL && strSrc != NULL);     while (*strDest) strDest++;     while (*strDest++ = *strSrc++) ;     return address; }5. strcpy源码char *strcpy(char *strDest, const char *strSrc){     assert(strDest != NULL && strSrc != NULL);     char *address = strDest;     while ((*strDest++ = *strSrc++) != '\0') ;     return address; }6. 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: