diff --git a/src/base/cptr.c b/src/base/cptr.c index 5876d1a..07eee43 100644 --- a/src/base/cptr.c +++ b/src/base/cptr.c @@ -189,27 +189,29 @@ char* cptr_toUpper(const char* src) { return p; } -char* cptr_replaceChar(const char* src, char c_old, char c_new, u32 startIndex, u32 seekLength){ +char* cptr_replaceCharIn(const char* src, char c_old, char c_new, u32 startIndex, u32 seekLength){ char* rzlt=cptr_copy(src); - char c=*src; - for(u32 i=startIndex; i0) + StringBuilder_append_string(sb, (string){.ptr=(char*)src, .length=src_remains_len}); string rezult=StringBuilder_build(sb); return rezult.ptr; } diff --git a/src/base/cptr.h b/src/base/cptr.h index fe15bed..509577c 100644 --- a/src/base/cptr.h +++ b/src/base/cptr.h @@ -77,11 +77,17 @@ char* cptr_toUpper(const char* src); /// @param startIndex 0 ... src length /// @param seekLength 0 ... -1 /// @return with replaced by or empty cstring if not found -char* cptr_replace(const char* src, char* str_old, char* str_new, u32 startIndex, u32 seekLength); +char* cptr_replaceIn(const char* src, const char* str_old, const char* str_new, u32 startIndex, u32 seekLength); /// @param startIndex 0 ... src length /// @param seekLength 0 ... -1 /// @return with replaced by or empty cstring if not found -char* cptr_replaceChar(const char* src, char c_old, char c_new, u32 startIndex, u32 seekLength); +char* cptr_replaceCharIn(const char* src, char c_old, char c_new, u32 startIndex, u32 seekLength); + +static inline char* cptr_replace(const char* src, const char* str_old, const char* str_new) +{ return cptr_replaceIn(src, str_old, str_new, 0, -1); } + +static inline char* cptr_replaceChar(const char* src, char c_old, char c_new) +{ return cptr_replaceCharIn(src, c_old, c_new, 0, -1); } #if __cplusplus } diff --git a/tests/test_cptr.c b/tests/test_cptr.c index ff05f4e..83dfadb 100644 --- a/tests/test_cptr.c +++ b/tests/test_cptr.c @@ -1,14 +1,5 @@ #include "tests.h" -/* - TODO -test cptr_seek... -test cptr_...indexOf... -test cptr_replace... - -cases: -*/ - const char* strings[]={ "", "abab", @@ -70,7 +61,7 @@ const char* strings[]={ const int strings_len=sizeof(strings)/sizeof(strings[0]); void test_cptr(){ - // optime(__func__,1, + optime(__func__,1, kprintf("\e[96m-------------[test_cptr]--------------\n"); // compare kprintf("\e[94m--------------[compare]---------------\n"); @@ -157,5 +148,7 @@ void test_cptr(){ test_seekReverse("ab", "", 2, 2, -1) test_seekReverse("ab", "b", 1, 2, 1) test_seekReverse("ab", "b", 1, 1, 1) - // ); + + // TODO cptr_replace + ); } \ No newline at end of file