From 34e170d3b6e4ac8e4f04f015d61900d960a2af63 Mon Sep 17 00:00:00 2001 From: NukeBird Date: Sun, 30 Nov 2025 17:32:50 +0300 Subject: [PATCH] axl_strncat --- axl_string.cpp | 17 ++++++++++++++++- axl_string.h | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/axl_string.cpp b/axl_string.cpp index 207cf84..072b9a6 100644 --- a/axl_string.cpp +++ b/axl_string.cpp @@ -6,7 +6,7 @@ u32 axl_strlen(const i8* s) { return 0; } - + u32 len = 0; while(s[len] != '\0') @@ -62,3 +62,18 @@ i8* axl_strcat(i8* dst, const i8* src) return axl_strcpy(dst + axl_strlen(dst), src); } + +i8* axl_strncat(i8* dst, const i8* src, u32 n) //n actually means "not more than" +{ + if(n == 0 || !dst || !src) + { + return dst; + } + + i8* p = dst + axl_strlen(dst); + while (n-- && (*p++ = *src++)); //quick note: '\0' == 0 + + *p = '\0'; //in case we copied exactly n without '\0' + + return dst; +} diff --git a/axl_string.h b/axl_string.h index 8d7b2df..e93fe06 100644 --- a/axl_string.h +++ b/axl_string.h @@ -7,5 +7,6 @@ u32 axl_strlen(const i8* s); 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); #endif // AXL_STRING