zoukankan      html  css  js  c++  java
  • strcpy strcat strcmp memcpy函数的自己实现

    #include <iostream>
    #include <assert.h>
    using namespace std;

    char* m_strcpy(char* dst, const char* src)
    {
    assert((dst != NULL) && (src != NULL));
    if (dst == src)
    {
    return dst;
    }
    char* ret = dst;
    int size = strlen(src) + 1;
    int len = size;
    if(dst > src)
    {
    dst = dst + size - 1;
    src = src + size - 1;
    while(size--)
    {
    *dst-- = *src--;
    }
    }
    else
    {
    while(size--)
    {
    *dst++ = *src++;
    }
    }
    return ret;
    }
    char* m_strcat(char* dst, const char* src)
    {
    assert(dst);
    assert(src);
    char* ret = dst;
    while(*dst != '')
    ++dst;
    int size = strlen(src) + 1;
    while (size--)
    {
    *dst++ = *src++;
    }
    return ret;
    }
    void* m_memcpy(void* dst, const char* src, int count)
    {
    assert(dst);
    assert(src);
    if (dst == src)
    {
    return dst;
    }
    void* ret = dst;
    char* pdst = (char*)dst;
    char* psrc = (char*)src;
    if (pdst > psrc && pdst < psrc + count)
    {
    pdst = pdst + count -1;
    psrc = psrc + count -1;
    while (count--)
    {
    *pdst-- = *psrc--;
    }
    }
    else
    {
    while (count--)
    {
    *pdst++ = *psrc++;
    }
    }
    return ret;
    }
    int m_strcmp(const char* str1, const char* str2)
    {
    while (*str1 == *str2 && *str1 != '' && *str2 != '')
    {
    str1++;
    str2++;
    }
    return *str1 - *str2;
    }

    int main ()
    {
    char dst[100] = "hello world";
    char *src = "world";
    char* ret = (char*)m_memcpy(dst+2, dst, 5);
    char* str1 = "abc";
    char* str2 = "abcd";
    int n = m_strcmp(str2, str1);
    system("pause");
    return 0;
    }

  • 相关阅读:
    分布式id生成
    DB主从一致性架构优化4种方法
    Mysql在大型网站的应用架构演变
    win10下iis绑定局域网ip无效的解决方案
    css随笔
    html标签说明
    C# JSON序列化日期格式问题
    使用事件机制相比直接调用函数的优势
    C#绑定事件时使用匿名函数
    C# t4模版引擎笔记 引入外部dll
  • 原文地址:https://www.cnblogs.com/mengjuanjuan/p/10455988.html
Copyright © 2011-2022 走看看