strspn strcspn

#ifndef __HAVE_ARCH_STRSPN
/**
 * strspn - Calculate the length of the initial substring of @s which only contain letters in @accept
 * @s: The string to be searched
 * @accept: The string to search for
 */
 size_t strspn(const char *s, const char *accept)
 {
     const char *p;
     const char *a;
     size_t count = 0;
     
     for (p = s; *p != ''; ++p) {
         for (a = accept; *a != ''; ++a) {
             if (*p == *a)
                 break;
         }
         if (*a == '')
             return count;
         ++count;
     }
     return count;

     
     EXPORT_SYMBOL(strspn);
#endif

strcspn

#ifndef __HAVE_ARCH_STRCSPN
/**
 * strcspn - Calculate the length of the initial substring of @s which does not contain letters in @reject
 * @s: The string to be searched
 * @reject: The string to avoid
 */
 size_t strcspn(const char *s, const char *reject)
 {
     const char *p;
     const char *r;
     size_t count = 0;

     for (p = s; *p != ''; ++p) {
         for (r = reject; *r != ''; ++r) {
             if (*p == *r)
                 return count;
         }
         ++count;
     }
     return count;
 }
 EXPORT_SYMBOL(strcspn);
#endif
原文地址:https://www.cnblogs.com/leegoo/p/3433672.html