#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
char stringbuf[256] = "add joe smith 120120120";
char* cmd = strtok(stringbuf, " ");
if (cmd == "add")
printf("ADD command recognized!\n");
else
printf("UNRECOGNIZABLE COMMAND!\n");
system("PAUSE");
}
Я использовал точку останова, чтобы проверить, что имеет каждая переменная. У cmd есть "добавить" еще, он печатает "НЕРАЗРУШАЮЩАЯ КОМАНДА!".
Что не так?
В (cmd == "add")
вы сравниваете два указателя на символы, вы не сравниваете строки.
Если вы хотите сравнить строки в коде C++, используйте std::string
. Если вы хотите написать код стиля C, используйте strcmp
.