Skip to content
Snippets Groups Projects
tools.c 1.05 KiB
Newer Older
antnh6@gmail.com's avatar
antnh6@gmail.com committed
#include <tools.h>
Tom Feng's avatar
Tom Feng committed

antnh6@gmail.com's avatar
antnh6@gmail.com committed
// Reference: http://clc-wiki.net/wiki/C_standard_library:string.h:strlen
int stringLen(const char* Str) {
    int Length;
    for (Length = 0; Str[i] != '\0'; i++);
    return Length;
} 

// Reference: http://clc-wiki.net/wiki/C_standard_library:string.h:strncpy
void stringCopy(char* Dest, const char* Src, int Length) {
    char *Ret = Dest;
    do {
        if (!Length--)
            return Ret;
    } while (*Dest++ = *Src++);
    while (Length--)
        *Dest++ = 0;
    return Ret;
}


// Reference: http://clc-wiki.net/wiki/C_standard_library:string.h:strcmp
int stringCompare(const char* Str1, const char* Str2) {
    while (*Str1 && (*Str1==*Str2))
        Str1++,Str2++;
    return *(const unsigned char*)Str1-*(const unsigned char*)Str2;
}

antnh6@gmail.com's avatar
antnh6@gmail.com committed
/*
 * Reference: https://www.geeksforgeeks.org/write-memcpy/
 */
int byteCopy(void* Dest, void* Src, int DestLen, int SrcLen) {
    if (SrcLen > DestLen) return FAILURE;
    int i;
    char* cDest = (char*)Dest;
    char* cSrc = (char*)Src;
    for (i = 0; i < SrcLen; i++) cDest[i] = cSrc[i];
}