皮皮网

【引擎资源管理源码】【溯源码过期怎么办】【省钱兄电竞系统源码】strpbrk 源码

来源:自由源码论坛 时间:2024-11-23 13:07:33

1.C语言strtok函数分割含有空值的引擎资源管理源码字符串

strpbrk 源码

C语言strtok函数分割含有空值的字符串

       如果你使用 strtok 函数, 那就没办法了.

       因为strtok函数里面采用了  strspn()这个函数.

       而 strspn 每次都将指针移动到第一个非 "|" 中的字符的位置.

        

       附上源码:

#include <string.h>

       static char *olds;

       #undef strtok

       char * strtok (char *s,const char *delim)

       {

         char *token;

         if (s == NULL)

           s = olds;

         /* Scan leading delimiters. */

         s += strspn (s, delim); //将指针移到第一个非delim中的字符的位置

         if (*s == '\0')

           {

             olds = s;

             return NULL;

           }

         /* Find the end of the token. */

         token = s;

         s = strpbrk (token, delim);// 获取到delimz中字符在字符串s中第一次出现的位置

         if (s == NULL)

           /* This token finishes the string. */

           olds = __rawmemchr (token, '\0');

         else

           {

             /* Terminate the token and make OLDS point past it. */

             *s = '\0';

             olds = s + 1;

           }

         return token;

       }