summaryrefslogtreecommitdiff
path: root/xxx/lib/string
diff options
context:
space:
mode:
Diffstat (limited to 'xxx/lib/string')
-rw-r--r--xxx/lib/string/string.c37
-rw-r--r--xxx/lib/string/string.h3
2 files changed, 40 insertions, 0 deletions
diff --git a/xxx/lib/string/string.c b/xxx/lib/string/string.c
new file mode 100644
index 0000000..729c509
--- /dev/null
+++ b/xxx/lib/string/string.c
@@ -0,0 +1,37 @@
+#include <stdbool.h>
+
+//length 0 for null terminated strings;
+bool strcmp(char *str1, char *str2, int length)
+{
+ int i=0;
+ while(true)
+ {
+ if(str1[i]!=str2[i])return false;
+ i++;
+
+ if(i==length) return true;
+ if(str1[i]==0||str2[i]==0)
+ {
+ if(str1[i]==str2[i])return true;
+ return false;
+ }
+ }
+
+}
+
+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;
+}
+
+int strlen(const char* string)
+{
+ int result = 0;
+ while ( string[result] )
+ result++;
+ return result;
+}
diff --git a/xxx/lib/string/string.h b/xxx/lib/string/string.h
new file mode 100644
index 0000000..a804de9
--- /dev/null
+++ b/xxx/lib/string/string.h
@@ -0,0 +1,3 @@
+#include <stdbool.h>
+bool strcmp(char *str1, char *str2, int length);
+void* memcpy(void* restrict dstptr, const void* restrict srcptr, int size);