Ver Fonte

feat(gblibc): strcspn

greatbridf há 2 anos atrás
pai
commit
d67ccc411a
2 ficheiros alterados com 15 adições e 0 exclusões
  1. 1 0
      gblibc/include/string.h
  2. 14 0
      gblibc/src/string.c

+ 1 - 0
gblibc/include/string.h

@@ -26,6 +26,7 @@ size_t strlen(const char* str);
 char* strchr(const char* str, int character);
 char* strrchr(const char* str, int character);
 char* strchrnul(const char* str, int character);
+size_t strcspn(const char* str1, const char* str2);
 
 char* strcpy(char* dst, const char* src);
 char* strncpy(char* dst, const char* src, size_t n);

+ 14 - 0
gblibc/src/string.c

@@ -161,3 +161,17 @@ int strcasecmp(const char* s1, const char* s2)
 {
     return strncasecmp(s1, s2, __SIZE_MAX__);
 }
+
+size_t strcspn(const char* str1, const char* str2)
+{
+    size_t ret = 0;
+    while (*str1) {
+        ++ret;
+        for (const char* p = str2; *p; ++p) {
+            if (*str1 == *p)
+                return ret;
+        }
+        ++str1;
+    }
+    return ret;
+}