Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C/C++程序中使用Grep进行模式匹配是否可取?_C++_C_Unix_Grep_System - Fatal编程技术网

在C/C++程序中使用Grep进行模式匹配是否可取?

在C/C++程序中使用Grep进行模式匹配是否可取?,c++,c,unix,grep,system,C++,C,Unix,Grep,System,我必须编写一个C/C++程序来处理大约100个文本文件,并找到一个通常是字符串的模式。因为我要运行的平台是unix,我想为什么我不在我的程序中使用grep system命令,因为它非常快速有效。但是,我的朋友说使用systemgrep。。。在一个计划内是不可取的。他建议我使用字符串模式匹配算法,我觉得这会减慢程序的速度 所以,我需要一些建议。帮帮我 如果不知道你的程序将要做什么,很难说。但通过系统运行命令会大大降低程序的速度,尽管这可能并不重要。无论您做什么,如果正则表达式可以解决这个问题,请不

我必须编写一个C/C++程序来处理大约100个文本文件,并找到一个通常是字符串的模式。因为我要运行的平台是unix,我想为什么我不在我的程序中使用grep system命令,因为它非常快速有效。但是,我的朋友说使用systemgrep。。。在一个计划内是不可取的。他建议我使用字符串模式匹配算法,我觉得这会减慢程序的速度


所以,我需要一些建议。帮帮我

如果不知道你的程序将要做什么,很难说。但通过系统运行命令会大大降低程序的速度,尽管这可能并不重要。无论您做什么,如果正则表达式可以解决这个问题,请不要编写自己的字符串匹配代码——使用现有的许多正则表达式库中的一个。如果你的问题大部分可以用GRIP来解决,考虑编写shell脚本,或者使用像Python这样的脚本语言来代替C++程序。

< P>不知道你的程序将要做什么,很难说。但通过系统运行命令会大大降低程序的速度,尽管这可能并不重要。无论您做什么,如果正则表达式可以解决这个问题,请不要编写自己的字符串匹配代码——使用现有的许多正则表达式库中的一个。如果你的问题大部分可以用GRIP来解决,考虑写一个shell脚本,或者使用一个像Python这样的脚本语言来代替C++程序。

< P>你的两个主要的替代方案是使用GRIP或B使用一个链接到C或C++程序的库,它提供正则表达式。 使用grep意味着你很快就能运行你的程序,因为你没有多少东西要学。使用正则表达式库意味着您的程序运行得更快

要快多少?主要的速度提升是因为您没有为这100个文件中的每一个设置新进程和运行新程序。这种速度节约有多大意义

答案取决于每个文件的大小。如果它们非常大,那么使用哪种方法不会有太大的速度差异。如果很小,它会


如果你决定使用正则表达式库,我猜它们的速度都差不多。我选择了一些我熟悉的东西,因为我知道Perl:.< /P> < P>你的两个主要替代方案是使用GRIP或B使用一个链接到C或C++程序的库,它提供正则表达式。 使用grep意味着你很快就能运行你的程序,因为你没有多少东西要学。使用正则表达式库意味着您的程序运行得更快

要快多少?主要的速度提升是因为您没有为这100个文件中的每一个设置新进程和运行新程序。这种速度节约有多大意义

答案取决于每个文件的大小。如果它们非常大,那么使用哪种方法不会有太大的速度差异。如果很小,它会


如果你决定使用正则表达式库,我猜它们的速度都差不多。我选择了一些我熟悉的东西,因为我知道Perl。

make forking and using exec命令族使用grep并将其结果保存在文件中。 主要是等待进程结束。
然后在main中打开文件并使用结果。

使forking和using exec命令族使用grep并将其结果保存在文件中。 主要是等待进程结束。
然后在main中打开文件并使用结果。

我的程序只返回模式匹配的一组文件。我必须写一个C/C++程序,不幸的是C/C++没有正则表达式库。你还没有解释为什么必须用C或C++。当前的C++标准没有正则表达式,下一个将有,但是有很多常用的实现,比如从Booost。C/C++,因为我被指令这样做。@模糊了系统做什么,但是捕获输出。仍然很慢,但正如我所说,这可能无关紧要。你总是毫无疑问地按照别人告诉你的去做吗?对于程序员来说,C++不是一种好的态度。C++有一个标准的正则表达式库,或者是::我的程序只返回一组模式匹配的文件。我必须写一个C/C++程序,不幸的是C/C++没有正则表达式库。你还没有解释为什么必须用C或C++。当前的C++标准没有正则表达式,下一个将有,但是有很多常用的实现,比如从Booost。C/C++,因为我被指令这样做。@模糊了系统做什么,但是捕获输出。仍然很慢,但正如我所说,这可能无关紧要。你总是毫无疑问地按照别人告诉你的去做吗?对于程序员来说,不是很好的态度。C++有一个正则表达式库,或者是: