我需要将短语组合成一个句子并将其作为单词传递。 我有一个 yacc 规则,其中规定:
words : words WORD {
if($1 == NULL)
{
$$ = $2;
}
else
{
printf("\t$1 = %s\n",$1);
printf("\t$2 = %s\n",$2);
strBuffer[0]='\0';
strcat((char *)strBuffer,$1);
$$ = strcat((char *)strBuffer,$2);
printf("\t$$ = %s\n\n",$$);
}
}
char strBuffer[200] 是一个足够大的全局数组。
但是当我运行解析器时,我得到:
$1 = The G
$2 = nats and
$$ = nats and
我应该怎么做才能使 $1 和 $2 都变成 $$?
最佳答案
尝试:
sprintf($$, "%s%s", $1, $2);
关于c - 获取 $$ 来保存 $1 和 $2 的串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5741093/