码迷,mamicode.com
首页 > 其他好文 > 详细

strlen, strcpy, strcmp, memcpy 的实现

时间:2015-08-07 22:24:52      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:strcpy   strlen   

#include <iostream>
using namespace std;
namespace MyString {
    size_t strlen(const char* str);
    char* strcpy(char* dst, const char* src);
    int strcmp(const char* str1, const char* str2);
}
size_t MyString::strlen(const char* str) {
    if (str == NULL)
        return 0;
    size_t size = 0;
    while (*str++ != ‘\0‘)
        size++;
    return size;
};
char* MyString::strcpy(char* dst, const char* src) {
    if (!dst || !src)
        return dst;
    char* dst_origal = dst;
    while (*dst++ = *src++);
    return dst_origal;
}
int MyString::strcmp(const char* str1, const char* str2) {
    int result = 0;
    if (!str1 || !str2) {
        return *str1 - *str2;
    }
    while (*str1 && *str2 && *str1 == *str2) {
        str1++;
        str2++;
    }
    return *str1 - *str2;
}

namespace MyMemory {
    template <class T>
    T* memcpy(T* dst, const T* src, size_t num) {
        if (!src || !dst || num < 1)
            return dst;
        T* dst_org = dst;
        size_t i = 0;
        while ((i++ < num) && (*dst++ = *src++)) {}
        return dst_org;
    }
}


int main()
{
    const char* str = "+1234";
    const char* str1 = "+123383891744";
    const char* str2 = "-2194839580031234";
    const char* str3 = "-1234";
    const char* str4 = "  -123sa4";
    const char* str5 = "  -+";
    cout << MyString::strlen(str) << endl;

    cout << MyString::strcmp(str, str1) << endl;
    cout << MyString::strcmp("qwer", "qwert") << endl;
    cout << MyString::strcmp("qwer", "qwer") << endl;
    cout << MyString::strcmp("qwert", "qwer") << endl;
    char* str_cp = new char[10];
    MyString::strcpy(str_cp, str2);
    cout << str_cp << endl;

    char* str_1 = new char [20];
    MyMemory::memcpy(str_1, str4, MyString::strlen(str4)+1);
    cout << str_1 << endl;
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

strlen, strcpy, strcmp, memcpy 的实现

标签:strcpy   strlen   

原文地址:http://blog.csdn.net/quzhongxin/article/details/47344837

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!