gpt4 book ai didi

c++ - 计算 C++ 中特定字符串的出现次数

转载 作者:行者123 更新时间:2023-11-30 04:07:36 26 4
gpt4 key购买 nike

我有一个 c++ 项目来计算输入文件的 LLOC,这是一个由代码生成器生成的文件,由表示为 F1( )、F2( )、...、Fn( ) 的函数序列组成,后跟主程序和控制结构,如if、while、do、switch等。我们应该数一数:主程序+函数+分号+等式+if语句+switch语句+while语句+for语句。例如,我可以很容易地数出 ; 的数量;使用 find 函数,但如何计算函数的数量?有什么方法可以计算子字符串 F*( ,这意味着每个以 F 开头并以 ( 结尾的子字符串?

这是我计算分号数量的代码:

#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int main(int argc, char ** argv) {
ifstream testfile;
std::string stringline;
std::string str2(";");
size_t found;
int positioncount = 0;
char arry[100];
testfile.open("program.cpp");
while (!testfile.eof()) {
testfile.getline(arry, 50);
stringline = arry;
if (stringline.find(str2) != std::string::npos) {
positioncount++;
}
}
cout << "\n" << positioncount;
testfile.close();
return 0;
}

最佳答案

由于代码是机器生成的,您可能可以对其做出假设,这会让生活变得更加轻松:例如,没有注释、没有包含看起来像代码的东西的字符串、没有嵌套类等。

这可能会让您摆脱基本的正则表达式和计数括号。现代 C++ 具有内置的正则表达式,您可能需要研究一下函数名称之类的东西。

计算出现次数通常使用 map 完成(参见 http://www.cplusplus.com/reference/map/map/?kw=map)。

关于c++ - 计算 C++ 中特定字符串的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22411135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com