字节拷贝函数:
void * memcpy1(void *dest, const void *src, size_t n)
{
        assert(dest!=NULL&&src!=NULL);    //有效性检测
        if(dest == src)
                return dest;
        else if(dest < src)
        {
                const char *c_src = static_cast<const char *>(src);
                char *c_dest = static_cast<char *>(dest);
                while (n--) *c_dest++ = *c_src++;
        }
        else
        {
                const char *c_src = static_cast<const char *>(src) + n - 1;
                char *c_dest = static_cast<char *>(dest) + n - 1;
                while (n--) *c_dest-- = *c_src--;
        }
        return dest;
}

字符串比较函数:
char *strcpy(char *des, const char *src)  
{  
    assert(des != NULL && src != NULL);  
    char *pStr = des;

while( (*des++ = *src++) != '\0');

return pStr;

}

字符串比较函数:
int  strcmp(const char *des,  const char *src)  
{  
    assert(des != NULL && src != NULL);

for (;*des && *src && *des == *src; des++, src++);

return *des - *src;

}

字符串长度函数:
int strlen(const char *pStr)  
{  
    assert(pStr != NULL);  
    int len = 0;  
    while (*pStr++ != '\0')  
        len++;  
  
    return len;

}

字符串连接函数:
char *strcat(char *des, const char *src)  
{  
    assert(*des != NULL && *src != NULL);  
    char *pStr = des;  
    while (*des != '\0')  
        des++;

while ((*des++ = *src++) != '\0');

return pStr;

}

字符串查找函数:
char *myStrstr(const char *des, const char *src)  
{  
    assert(des != NULL && src != NULL);  
  
    char *d = des;  
    char *s = src;  
  
    for (; d != '\0'; des++)  
    {  
        for (d = des, s = src; (s != '\0') && (*d == *s); d++, s++)  
            NULL;  
      
    if (*s == '\0')  
        return des;  
    }  
      
    return NULL;  
  
}

转载于:https://www.cnblogs.com/llinzuxin/archive/2012/10/23/2950477.html

自己实现memcpy/strcpy/strcmp/strcat/strlen/strstr相关推荐

  1. C语言库函数的实现(strlen strcpy strcmp strcat strstr)

    库函数的实现 strlen strcpy strcmp strcat strstr assert函数 头文件:assert.h 又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的 ...

  2. C基础--字符串操作函数(strlen,strcpy,strcmp,strcat,strstr,strtok,strchr)

    #include <stdio.h> #include <string.h> int main(void) {//char dest[10];//#define NULL (v ...

  3. 字符串函数实现(strlen,strcpy,strcmp,strcat,strrev)

    声明:以下代码可能并非最佳方法,若有错误疑问欢迎提出!!! strlen函数 #include<stdio.h> #include<string.h>int mylen(cha ...

  4. strlen,strcpy,strcmp,strcat,strncpy,strncmp,strncat

    写在前面:本文比较长,覆盖了c语言中较多的字符串函数,作者会先带各位了解标准库对函数的介绍,然后模拟实现相关功能. strlen 求字符串长度 size_t表明返回一个无符号类型的数字,是因为考虑到l ...

  5. strlen, strcpy,strcmp,strcat,strncpy,strncmp,strncat,strst库函数的详细解析以及模拟实现

  6. C和指针之字符串简单实现 strcpy、strcat、strstr函数

    1.实现strcpy函数 #include <stdio.h>//简单实现strcpy函数 char *my_strcpy(char *des, const char *src) {if ...

  7. 如何用C语言实现各种字符函数和字符串函数strstr、memcpy、memmove、strlen、strcpy、strcmp、strcat

    用C语言模拟实现字符函数与字符串函数 strstr.memcpy.memmove.strlen.strcpy.strcmp.strcat 若使用本文相关代码,还请动手点个赞!!! #define _C ...

  8. 【C语言】str类与men库函数的实现(如:strcpy,strcmp,strstr,strcat,memmove,memcpy)

    https://blog.csdn.net/hanjing_1995/article/details/51539583 strcpy 拷贝源字符串到子字符串,包括'\0'. 代码实现: [cpp] v ...

  9. c语言 strcpy原型,浅谈C语言中strcpy,strcmp,strlen,strcat函数原型

    实例如下: //strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, cons ...

  10. C和指针之字符串之strlen、strcpy、 strcat、strcmp使用总结

    1.常见字符串相关操作 我们知道有strlen. strcpy.strcat.strcmp.这样一一系列函数 2.实现Demo #include <stdio.h> #include &l ...

最新文章

  1. 《小学生都能看懂的快速沃尔什变换从入门到升天教程》(FWT / FMT / FMI)(最最严谨清晰的证明!零基础也能得学会!)
  2. @卡尔曼滤波 跑通调参
  3. 5-Qt6 QObjec对象拷贝
  4. python代码自动补齐插件
  5. vuejs之【router-link】大全(二)
  6. bash之read命令
  7. windows下mongodb安装与使用
  8. maven 配置远程仓库服务器密码
  9. R语言数据最大最小归一化
  10. 程序员的故事 007 程序员是吃青春饭的
  11. C#—— 身份证验证方法
  12. Java之美[从蛮荒到撬动地球]之设计模式三
  13. 项目管理中的里程碑是什么
  14. STM32F103ZET6+TJA1050 HAL CAN通讯笔记
  15. 专利撰写教程网站合集
  16. iphone11各机型对比_三款机型运行速度对比,iPhone11Pro表现如何?
  17. win10安装graph_tool,在jupyter notebook运行代码
  18. iOS 集成腾讯云聊天 最新sdk使用方法
  19. 【2006NOIP普及组】开心的金明 题解
  20. python 发文测试

热门文章

  1. 技巧:macOS 在 Finder(访达)中查看文件夹大小
  2. C++11之 Move semantics(移动语义)(转)
  3. 双向链表基本实现简单贪吃蛇
  4. seci-log 1.06 发布 增加全文搜索
  5. Windows Server 2008 R2之三管理活动目录数据库
  6. 网易开源云原生日志系统!
  7. 面试官:谈谈分布式一致性机制,我一脸懵逼。。
  8. 阿里技术小哥,写了一个“​废话生成器”!火爆内网,演绎了什么叫“阿里味“!...
  9. 我把SpringBoot的banner换成了美女,老板说工作不饱和,建议安排加班...
  10. 我面试了我的前领导,他连做我的下属都不配