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;
    }

  • 相关阅读:
    钉钉outgoing机器人小项目开发
    js根据cookie判断,一天之内只弹出一次弹窗
    js倒计时功能
    jquery的$().each,$.each的区别
    VS代码提示自动高亮
    winform当前屏幕大小
    动态增删改控件
    datagridveiw样式
    sql 语句 提取中文的首字母
    按键监听及重写
  • 原文地址:https://www.cnblogs.com/mengjuanjuan/p/10455988.html
Copyright © 2011-2022 走看看