Tag Archives: 字符串

flex & bison 如何用yylval传递字符串值

flex进行scanner,将数值存入yylval。

而bison读取yylval之中的值。

神奇的yylval是int类型,如何让它存储多种类型呢?

以string为例:

需要在.l和.y的头部第一句加入:
#define YYSTYPE char*
在.l赋值的时候,要特别注意,需要拷贝字符串。
yylval = strdup(yytext); return WORD;
在.y取用的时候,直接强转就可以了。
(char*)$1
关于更优雅的实现方式,当然[......]

继续阅读

在一个字符串中找到第一个只出现一次的字符

在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。

题目不难,主要是两个条件,注意只出现一次,并且要第一个这种字符。

用stl的map什么的有点不合适,简单数组map即可。
char str_first(char* str)
{
char* ptr = str;
int map[255];
memset(map, 0, sizeof(int)*255);
// First O(N), count
while(*ptr!=[......]

继续阅读