В настоящее время я пишу HTML-распознаватель токенов в C++. Я использую стеки, чтобы проверить, есть ли начальные и соответствующие теги.C++ - Сравнение строк Функция не работает?
Прежде чем я смогу сопоставить свои теги, мне нужно убедиться, что тег действителен. Но почему-то моя функция проверки не работает. Я прохожу через каждый шаг в алгоритме, и из всего, что вижу, это должно работать. Но каждый раз он возвращает ложь. Вот мой код:
const int NUM_TAGS = 12;
char *tagNames[NUM_TAGS] =
{
"<html>",
"</html>",
"<head>",
"</head>",
"<title>",
"</title>",
"<body>",
"</body>",
"<p>",
"</p>",
"</>",
"<SPOT/>",
};
bool check_ValidTag(char check[])
{
for (int i=0; i<=NUM_TAGS; i++)
{
if (check==tagNames[i])
return true;
}
return false;
};
Я вызываю функцию так:
tok.isValid = check_ValidTag((char*)tok.str);
Как Запрошенный Вот что структура "Tok" выглядит ..
struct token
{
char name[MAX_NAME + 1];
int type;
bool isValid;
char str[MAX_LENGTH + 1];
};
Любые идеи ? Благодарю.
Что такое 'tok.str'? – Jacob
Я не вижу, где определяется темп. – prolink007
Любая причина, по которой следы следов SPOT? (Может быть, это его собственный тег?) – John