strtok是否与字符串一起使用(作为分隔符)?

时间:2013-02-14 03:15:15

标签: c strtok

例如:

友好。

我不喜欢这个词末尾的“ly”。我可以通过“ly”

对此字符串进行标记

someCharVariable = strtok(“友好”,“ly”)?

2 个答案:

答案 0 :(得分:2)

答案是否定的。您的“ly”示例将分隔任何“l”或“y”或“yl”或“ly”的出现

delimiter参数是一个字符数组,每个字符都用作分隔符。

这是您要求的示例:

char *iterate(char *p, const char *d, const size_t len)
{   
   while(p!=NULL && *p && memcmp(p, d, len)==0)
   {
      memset(p, 0x0, len);
      p+=len;    
   }
   return p;
}

char **
tokenize( char **result, char *working, const char *src, const char *delim)
{
     int i=0;
     char *p=NULL;
     size_t len=strlen(delim);     
     strcpy(working, src);
     p=working;
     for(result[i]=NULL, p=iterate(p, delim, len); p!=NULL && *p; p=iterate(p, delim, len) )
     {
         result[i++]=p;
         result[i]=NULL;
         p=strstr(p, delim);
     }
     return result;
}

答案 1 :(得分:0)

strtok返回char *。所以你需要使用somechar * var而不是somecharvariable。

您的代码将返回指向字符串“friend”的指针,“l”将替换为“/ 0”。

相关问题