diff --git a/axl_string.cpp b/axl_string.cpp index 072b9a6..f1856ca 100644 --- a/axl_string.cpp +++ b/axl_string.cpp @@ -77,3 +77,24 @@ i8* axl_strncat(i8* dst, const i8* src, u32 n) //n actually means "not more than return dst; } + +i32 axl_strcmp(const i8* s1, const i8* s2) +{ + if (!s1 || !s2) + { + return (s1 == s2) ? 0 : (!s1 ? -1 : 1); + } + + for (;; s1++, s2++) + { + u8 c1 = *(const u8*)s1; + u8 c2 = *(const u8*)s2; + + if (c1 != c2 || c1 == '\0' || c2 == '\0') + { + return c1 - c2; + } + } + + return 0; +} diff --git a/axl_string.h b/axl_string.h index e93fe06..8f9c9ae 100644 --- a/axl_string.h +++ b/axl_string.h @@ -8,5 +8,6 @@ i8* axl_strcpy(i8* dst, const i8* src); i8* axl_strncpy(i8* dst, const i8* src, u32 n); i8* axl_strcat(i8* dst, const i8* src); i8* axl_strncat(i8* dst, const i8* src, u32 n); +i32 axl_strcmp(const i8* s1, const i8* s2); #endif // AXL_STRING