我有一个字符串,如“id1 * id2 + 100; for(i = 0; i< 5; i ++); if(a> b),c = 70;” 现在我想通过运算符拆分字符串,标识符n其他如.......
输出:
运算符:
*
+ .......
标识符: ID1 ID2 ..........
他人: 对于 如果 然后 Ç...........
我知道将一个字符串分成像......这样的标记。
int main()
{
char str[]=" b = a + c ; for (i =0;i<5;i++ )";
char *Pch;Pch=strtok(str," ;");
int i=1;
printf("Splitting string \"%s\" into token \n",str);
while(Pch!=NULL)
{
printf("[%d] %s\n",i,Pch);
i++;
Pch=strtok(NULL," ; ");
}
return 0;
}
但是我不知道怎么用这一切来分割一个字符串......我想要你们的帮助。所有。请帮助..
答案 0 :(得分:0)
在我看来,您似乎正在尝试解析特定语法。现在你必须做出选择:
答案 1 :(得分:0)
看起来你想让词法分析器从输入字符串中提取标记。 Flex(与Bison,也许?)是一个很好的选择。如果您愿意,您可以随时编写自己的词法分析器和/或语法分析器。
我通过挖掘FSM(有限状态机)来开始我的冒险家。
参考。标题:&#34;龙书&#34;