我有一个问题,我正在尝试使用堆栈来检查html文件是否具有平衡标签。我有程序使用C ++文件。它检查括号是否平衡。问题是像这样的标签很适合char。我在字符常量中收到太多字符错误。他的周围有办法吗?
bool balanced(char A[], int n) {
int i;
stack <char> a;
for (i = 0; i < n; i++) {
if (A[i] == '<head>' || A[i] == '<title>' || A[i] == '<body>') {
a.push(A[i]);
}
else
{
switch (A[i]) {
case '</head>':
a.top();
a.pop();
break;
case '</title>':
a.top();
a.pop();
break;
case '</body>':
a.top();
a.pop();
break;
}
}
}
答案 0 :(得分:1)
你不能这样做
A[i] == '<head>'
A [i]是一个字符而不是字符串。你应该使用std :: string。如果&#39; A&#39;是你能做的一个字符串
A =="<head>"
或使用strcmp(不是惯用的c ++)