У меня есть структура, как показано ниже
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"}};
Теперь я назвал свою пользовательскую функцию (pass) как
С++ код
for(i=0;i<5;i++)
pass(var[i].name.c_str());// how can i pass name sting to char *?
c-код
void pass(char *name) // implemented in c code so cannot use string
{
cout<<name<<endl;
}
Я должен передать имя строкового типа в вызывающей функции (код c++) в вызываемую функцию (код c), которая имеет тип char *. Я использую c_str(), но это выдает ошибку. Пожалуйста, помогите мне, спасибо заранее
Примечание: функция pass вызывается из кода C++, который передает строку в качестве аргумента в код C, который перехватывает как char *
c_str
справочник. Обратите внимание на то, какой тип он возвращает. - person Some programmer dude   schedule 19.02.2017std::string&
. Обратите внимание, что в *новом* c++11 у вас естьstd::string::data
. - person LogicStuff   schedule 19.02.2017char const*
, и не было бы вопроса. - person LogicStuff   schedule 19.02.2017