获得$$以保持1美元和1美元的串联$ 2

时间:2011-04-21 07:47:40

标签: c yacc

我需要将短语组合成一个句子并将其作为单词传递。 我有一个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进入$$?

1 个答案:

答案 0 :(得分:2)

尝试:

sprintf($$, "%s%s", $1, $2);