例如:
友好。
我不喜欢词尾的“ly”。我可以用“ly”标记这个字符串吗
someCharVariable = strtok("friendly", "ly")?
答案是不。您的“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;
}
strtok 返回字符 *。所以你需要使用 somechar*var 而不是 somecharvariable。
您的代码将返回指向字符串“friend”的指针,并且“l”将被替换为“/0”。