如何将字符串转换为const char

时间:2011-10-30 02:52:16

标签: c++ visual-c++

所以我得到了第一个问题。我运行代码,我提示在阵列中输入一些列表。输入列表后,我将此功能作为search_func运行。但它保持返回没有找到记录。是因为[0],奇怪,因为我在for循环中有它。

请帮忙。 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 个答案:

答案 0 :(得分:4)

试试这个:

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

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

编辑:

如果gettitle()返回临时值,则上述方法将无效。你需要这样做:

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

答案 1 :(得分:0)

我假设第一个参数是std :: string。尝试调用它的c_str()方法。