【发布时间】:2021-08-20 04:21:15
【问题描述】:
以下 sn-p 显示了我当前输出的一小部分:
1464: ebfffe4d bl da0 <memcpy@plt>
14bc: ebfffe37 bl da0 <memcpy@plt>
输出中的每一行都指向一个字符串。我想要归档的是,在这个 只有 memcpy@plt 将打印一次。当字符串包含“bl”时,名称 <...> 内应该打印并且只打印一次,因为 <...> 内的名称是相同的 在这两种情况下。有没有办法得到这个? 我当前的代码如下所示:
class CallFunction {
private:
vector<string> content;
public:
CallFunction(vector<string> content) {
this->content = content;
}
void print() {
for(string line: content) {
if(line.find("bl") != std::string::npos
&& line.find("<") != std::string::npos) {
cout << line << endl;
}
}
}
};
int main() {
string fileName = "libndkmod.s";
vector<string> content = readFile(fileName);
CallFunction cf = CallFunction(content);
cf.print();
}
在此先感谢您的问候!
【问题讨论】:
-
您可以将名称存储在集合中,并且仅当名称不在集合中时才打印该行。
-
或者将它们存储在一组中,然后打印整组。
-
一个名字的多次出现是否会出现在连续的行中?那么你不需要一个集合,只需要一个电流条纹名称的变量。