it-*_*son 3 c delimiter strtok
是否可以使用多个字符作为一个分隔符?
我想要一个字符串作为另一个字符串的分隔符。
char * input = "inputvalue1SEPARATORSTRINGinputvalue2SEPARATORSTRINGinputvalue2";
char * output = malloc(sizeof(char*));
char * delim = "SEPARATORSTRING";
char * example()
{
char * ptr = strtok(input, delim);
while (ptr != NULL)
{
output = strcat(output, ptrvar);
output = strcat(output, "\n");
ptr = strtok(NULL, delim);
}
return output;
}
Run Code Online (Sandbox Code Playgroud)
返回值打印为printf:
inputvalue1
inputvalue2
inputvalue3
Run Code Online (Sandbox Code Playgroud)
不,根据手册页strtok():
所述
delim参数指定 的一组限定在所解析的串令牌字节。
如果您想使用多字节字符串作为分隔符,则没有像strtok(). 您必须改为使用strstr()来查找输入中出现的分隔符字符串,然后手动前进。
这是这个答案的一个例子:
char *multi_tok(char *input, char *delimiter) {
static char *string;
if (input != NULL)
string = input;
if (string == NULL)
return string;
char *end = strstr(string, delimiter);
if (end == NULL) {
char *temp = string;
string = NULL;
return temp;
}
char *temp = string;
*end = '\0';
string = end + strlen(delimiter);
return temp;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |