在 strtok() 中查找分隔符
Find delimiter in strtok()
我是 C 编程新手。
我正在尝试使用 strtok() 拆分字符串,使用多个定界符。代码行是:
char *token = strtok(st, " +-*/^()");
我想知道它在哪个分隔符处被分割了。可能吗?请帮忙。
在这个例子中,我的意思是令牌是否在 space、加号、减号等
处拆分
函数strtok
将找到的分隔符更改为零字符'[=12=]'
。所以无法确定遇到了什么定界符。
您可以使用函数 strspn
和 strcspn
而不是函数 strtok
。使用这些函数,您可以确定遇到了什么定界符。
例如
size_t n = strcspn( st, " +-*/^()" );
if ( st[n] != '[=10=]' )
{
switch ( st[n] )
{
case ' ':
//...
break;
case '+':
//...
break;
//...
}
}
我是 C 编程新手。 我正在尝试使用 strtok() 拆分字符串,使用多个定界符。代码行是:
char *token = strtok(st, " +-*/^()");
我想知道它在哪个分隔符处被分割了。可能吗?请帮忙。 在这个例子中,我的意思是令牌是否在 space、加号、减号等
处拆分函数strtok
将找到的分隔符更改为零字符'[=12=]'
。所以无法确定遇到了什么定界符。
您可以使用函数 strspn
和 strcspn
而不是函数 strtok
。使用这些函数,您可以确定遇到了什么定界符。
例如
size_t n = strcspn( st, " +-*/^()" );
if ( st[n] != '[=10=]' )
{
switch ( st[n] )
{
case ' ':
//...
break;
case '+':
//...
break;
//...
}
}