From db22b587966b4a4eaa47536f32ca812532446bcb Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Mon, 18 May 2015 00:48:07 +0200 Subject: heavy refactoring underway --- lib/string/string.c | 43 +++++++++++++++++++++++++++++++++++++++++++ lib/string/string.h | 8 ++++++++ 2 files changed, 51 insertions(+) create mode 100644 lib/string/string.c create mode 100644 lib/string/string.h (limited to 'lib/string') diff --git a/lib/string/string.c b/lib/string/string.c new file mode 100644 index 0000000..be2c7ed --- /dev/null +++ b/lib/string/string.c @@ -0,0 +1,43 @@ +#include +#include "string.h" + +void* memcpy(void* restrict dstptr, const void* restrict srcptr, int size) +{ + unsigned char* dst = (unsigned char*) dstptr; + const unsigned char* src = (const unsigned char*) srcptr; + for ( int i = 0; i < size; i++ ) + dst[i] = src[i]; + return dstptr; +} + + +// extra function for non-null terminated +//length 0 for null terminated strings; +int strcmp_l(char *str1, char *str2, int length) +{ + int i=0; + while(true) + { + + if(str1[i]!=str2[i])return str1[i]-str2[i]; + i++; + if(i==length) return 0; + + if( length==0 && (str1[i]==0 || str2[i]==0 ) ) + return str1[i]-str2[i]; + + } + +} +static int strcmp(char *str1, char *str2) +{ + return strcmp_l(str1,str2,0); +} + + +int strlen(const char* string) +{ + int result = 0; + while ( string[result] )result++; + return result; +} diff --git a/lib/string/string.h b/lib/string/string.h new file mode 100644 index 0000000..e41eb94 --- /dev/null +++ b/lib/string/string.h @@ -0,0 +1,8 @@ +#ifndef STRING_H +#define STRING_H + + +void* memcpy(void* restrict dstptr, const void* restrict srcptr, int size); +int strcmp_l(char *str1, char *str2, int length); + +#endif -- cgit v1.2.3