欢迎来到皮皮网网首页

【免费bc源码网】【交友源码 双端】【fedora源码哪里下载】strpbrk源码

来源:冰峰火焰指标源码 时间:2024-11-23 16:38:01

1.C语言strtok函数分割含有空值的免费bc源码网字符串

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;

       }