у меня есть-структура, как показано нижеПередача несколько строки в зависимости от C++ кода в код С выдаст ошибку
struct st
{
std::string name;
std ::string refer;
int number;
std::string path;
};
Создал массив выше структур,
struct st var[5]={{"rick1","ross1",1,"demo1"},
{ "rick2","roos2",2,"demo2" },
{ "rick3","roos3",3,"demo3"},
{"rick4","roos4,4,"demo4"},
{"rick5","roos5",5,"demo5"}};
Теперь я назвал моим userdefine функция (проход) в
C++ код
for(i=0;i<5;i++)
pass(var[i].name.c_str());// how can i pass name sting to char *?
с кодом
void pass(char *name) // implemented in c code so cannot use string
{
cout<<name<<endl;
}
я м должен передать имя, которое является типом строки в вызове функции (с ++ кода) к вызываемой функции (с кодом), который является символом * Типа .I м с помощью c_str(), но бросить ошибка .Please помочь мне заранее спасибо
Примечания: функция передачи вызываются из C++ кода, переходящей строку в качестве аргумента к с кодом, который поймать голец *
Пожалуйста, прочтите [эту ссылку 'c_str'] (http://en.cppreference.com/w/cpp/string/basic_string/c_str). Обратите внимание, какой тип он возвращает. –
Если это * ваша пользовательская функция *, определите ее правильно, то есть с параметром 'std :: string &'. Обратите внимание, что в \ * new \ * C++ 11 у вас есть 'std :: string :: data'. – LogicStuff
@Biffen OP будет использовать 'char const *', и не было бы вопроса. – LogicStuff