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

例如:

友好。

我不喜欢这个词末尾的“ly”。 我可以用“ly”标记这个字符串吗?

someCharVariable = strtok(“友好”,“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返回char *。 所以你需要使用somechar * var而不是somecharvariable。

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