【发布时间】:2013-08-02 07:26:25
【问题描述】:
我有一个 .txt 文件,我使用 C++ 中的 getline() 函数逐行读取数据。每当我在文件中找到“函数”一词时,我需要从同一行中提取一些字符串/子字符串并将它们存储在数据结构中。我一直面临的困难和卡住的地方是,我正在使用 getline() 以字符串的形式读取行。但我无法存储子字符串,因为我不确定它们的结束位置。我需要逐个字符检查,直到遇到空格/空白,但不能这样做,因为它是字符串格式而不是字符......
【问题讨论】:
-
你有什么问题?
-
C++11 对regular expressions 有很好的支持,或者如果你没有支持Boost have。或查看lex 和yacc 等工具。
-
提取字符串的特定部分(A FUNCTION ABBBCCC ABCDDD),假设 FUNCTION 并写入下一部分直到用空格分隔(AABBBCCC)并将此信息写入数据库。
-
@JoachimPileborg lex 和 yacc 用于编译器设计,这些工具在这种情况下并没有多大用处。
-
@jnovacho 虽然 Lex 和 Yacc 主要用于简单的编译器/解释器类型的程序,但它们可以(并且现在)用于解析几乎任何类型的文本输入。
标签: c++