作为练习的一部分,我的教授对讲座提出挑战,要求编写一些代码以从文本字符串中删除HTML标签。他提到了一个特定的命令,稍后我们将学习该命令,它将为我们完成此任务,但他希望我们手动执行此操作。
这是我到目前为止的内容:
#include<iostream>
#include<string>
using namespace std;
int main() {
string name = "<HTML> smelly </b> butts </b> smell<test>";
cout << name << endl;
int a = 0, b = 0;
for (int a = b; a < name.length(); a++) {
if (name[a] == '<') {
for (int b = a; b < name.length(); b++) {
if (name[b] == '>') {
name.erase(a, (b + 1));
break;
}
}
}
}
cout << name << endl;
system("pause");
return 0;
}
我感觉自己已经接近了,但是没有得到正确的输出。
最佳答案
for (int b = a; b < name.length(); b++) {
if (name[b] == '>') {
name.erase(a, (b + 1));
break;
}
}
在这部分代码中,您要擦除长度(b)的一部分,而应该擦除长度(b-a)的一部分
试试这个:
for (int b = a; b < name.length(); b++) {
if (name[b] == '>') {
name.erase(a, (b - a + 1));
break;
}
}
它应该可以根据需要工作。