Cでパス2アセンブラを実装し、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);
}
:
はここで生成するトークンのコードで引数operand
を変更することを許可されていない
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