guodongxiaren / OJ

4 stars 3 forks source link

编程杂题:实现C库函数 #34

Open guodongxiaren opened 4 years ago

guodongxiaren commented 4 years ago

左右花括号比上下花括号,在白纸编程的时候更方便。

如果mem系列函数的dest和src顺序记不清,就去回忆memset。 你就会记得dst在src前面了。因为它的src可以是0、-1。从来没出现在第一个参数位置。

guodongxiaren commented 4 years ago

strcat

guodongxiaren commented 4 years ago

strcpy

char* strcpy(char* des, const char* source) {
    assert((des != NULL) && (source != NULL));

    char* r = des;
    while((*r++ = *source++) != '\0');
    return des;
}
guodongxiaren commented 4 years ago

memcpy

void* _memcpy(void* dest, const void* src, size_t count) {
    assert(src != NULL && dest != NULL);

    char* tmp_dest = (char*)dest;
    const char* tmp_src = (const char*)src;

    while (count--) {
        *tmp_dest++ = *tmp_src++;
    }
    return dest;
}
guodongxiaren commented 4 years ago

memmove

guodongxiaren commented 4 years ago

atoi