在 strtok() 中查找分隔符

Find delimiter in strtok()

我是 C 编程新手。 我正在尝试使用 strtok() 拆分字符串,使用多个定界符。代码行是:

char *token = strtok(st, " +-*/^()");

我想知道它在哪个分隔符处被分割了。可能吗?请帮忙。 在这个例子中,我的意思是令牌是否在 space、加号、减号等

处拆分

函数strtok 将找到的分隔符更改为零字符'[=12=]'。所以无法确定遇到了什么定界符。

您可以使用函数 strspnstrcspn 而不是函数 strtok。使用这些函数,您可以确定遇到了什么定界符。

例如

size_t n = strcspn( st, " +-*/^()" );

if ( st[n] != '[=10=]' )
{
    switch ( st[n] )
    {
    case ' ':
       //...
       break;
    case '+':
       //...
       break;
    //...
    }
}