例如,我有一个用户 ID、访问时间、程序名称和版本号列表作为 CSV 字符串列表,如下所示:
1,1342995305,Some Program,0.98
1,1342995315,Some Program,1.20
2,1342985305,Another Program,15.8.3
1,1342995443,Bob's favorite game,0.98
3,1238543846,Something else,
...
假设这个列表不是一个文件,而是一个内存中的字符串列表。
现在假设我想了解某个程序被某些程序访问的频率,如它们的版本号所示。(例如“Some Program version 1.20”被访问了 193 次,“Some Program version 0.98”被访问了 876 次,“Some Program 1.0.1”被访问了 1,932 次)
是构建一个正则表达式然后用它regexec()
来查找匹配并拉出版本号,还是strstr()
匹配程序名称加逗号,然后读取字符串的以下部分作为版本号更好?如果它有所作为,假设我在 Linux 上使用 GCC。
有性能差异吗?一种方法比另一种方法“更好”还是“更合适”?这有关系吗?