как преобразовать строку в константный символ - PullRequest
2 голосов
/ 30 октября 2011

так что у меня первая проблема сработала. я запускаю код, и мне предлагается ввести какой-то список в массив. после ввода списка я запускаю эту функцию как search_func. но он продолжает возвращать запись не найдена. это из-за [0], странно, потому что у меня это внутри цикла.

Пожалуйста, помогите. book books[] является объектом класса ..

int search(book books[], char search) {
    const char* boook =books[0].gettitle();
  //......try this but it failed please help
  cout << "Search books by title:____  ";

  cin >> search;

  bool yes = false;
  int size=2;

  for(int index=0; index<size; index++) {
    if(strcmp(boook,search) == 0 )//....error at this line
         { 
        found = true;
        cout<<"book found "<<endl;
        //cout<<"Author Name: "<<fn<<" "<<ln<<endl;
        break;
      }
  }

  if(!yes)
    cout<<"no book found"<<endl;
}

Ответы [ 2 ]

4 голосов
/ 30 октября 2011

Попробуйте это:

const char* c_str = books[0].gettitle().c_str();

http://www.cplusplus.com/reference/string/string/c_str/

EDIT:

Если gettitle() возвращает временное значение, вышеуказанный метод не будет работать. Вам нужно будет сделать это вместо:

string title = books[0].gettitle();
const char* c_str = title.c_str();
0 голосов
/ 30 октября 2011

Я предполагаю, что первый аргумент является std :: string. Попробуйте вызвать его методом c_str ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...