我在C中实现了pass 2 assembler并试图使用strtok()
来获取表达式的条件。该函数正确运行在while
循环内,但它不会正确生成令牌。strtok()函数不正确地标记字符串
下面是用于生成令牌的代码:
char *terms[50];
char *operand="THREE-3"
char delimit[] = "+-\*";
int k = 0;
terms[k] = strtok(operand,delimit);
while(terms[k] != NULL)
{
printf("token [%d]=%s\n",k,terms[k]);
k++;
terms[k]=strtok(NULL,delimit);
}
这是输出中:
token [0]=3
token [0]=3
token [0]=3
token [0]=3
token [0]=3
token [0]=3
token [0]=3
token [0]=3
token [0]=3
token [0]=3
token [0]=3
token [0]=3
token [0]=3
token [0]=3
token [0]=3
token [0]=THREE
token [1]=3
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE
token [0]=THREE