【发布时间】:2011-10-03 20:40:55
【问题描述】:
我有一个文件,我正在标记其中的所有字符串。
所以每个令牌都存储在char *token = (char *) malloc(len + 1); 令牌在分配新令牌之前被释放,所以我需要一种方法来存储令牌以供进一步使用。
存储令牌的好策略是什么?我有一个函数可以一次打印出一个标记字符串。
我的问题不是关于如何标记或解析,所以请忽略它的实现。我的问题是,我有一堆字符串在一个循环中被分配和释放多次。那么如何将每个分配存储在其他地方以供进一步使用?
【问题讨论】:
-
我们可以看看这个文件的例子吗?
-
你能提供更多的上下文吗?你想做什么?
-
目前您的问题回答范围从完整的词法分析解决方案(如 lex)或简单的字符串标记器(如
strtok)。正如其他人所说,提供更多细节。 -
存储令牌的好策略完全取决于您打算如何处理令牌。
-
我仍然认为需要更多地说明在存储令牌后您将要使用这些令牌的用途。例如,如果快速访问令牌是最重要的事情,那么哈希表可能是最好的。如果维护顺序很重要,那么哈希表可能不起作用。这是可以帮助我回答的信息类型。