Неправильное сравнение строк с использованием strtok ()

0
#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 есть "добавить" еще, он печатает "НЕРАЗРУШАЮЩАЯ КОМАНДА!".

Что не так?

Теги:

1 ответ

2
Лучший ответ

В (cmd == "add") вы сравниваете два указателя на символы, вы не сравниваете строки.

Если вы хотите сравнить строки в коде C++, используйте std::string. Если вы хотите написать код стиля C, используйте strcmp.

  • 0
    А ну понятно! Получил это на работу сейчас, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню