C++ 为什么strcpy()不能接受字符串作为参数?
所以我试着写一个小小的personal Planner应用程序,希望在课堂任务中存储信息 没有什么好想象的,但是strcpy不识别字符串c_任务; 编译器说c:task是std:string Tasks::c_task,所以我知道它不是strcpy的正确参数。所以问题是如何让strcpy接受这个字符串C++ 为什么strcpy()不能接受字符串作为参数?,c++,C++,所以我试着写一个小小的personal Planner应用程序,希望在课堂任务中存储信息 没有什么好想象的,但是strcpy不识别字符串c_任务; 编译器说c:task是std:string Tasks::c_task,所以我知道它不是strcpy的正确参数。所以问题是如何让strcpy接受这个字符串 class Tasks { public: string c_task = ""; int date; int category; int priority;
class Tasks {
public:
string c_task = "";
int date;
int category;
int priority;
void newTask(string n_task);
};
void Tasks::newTask(string n_task)
{
strcpy_s(c_task, n_task);
}
Strcpy是C语言的标准库函数。您应该使用字符串的复制构造函数。使用std::字符串相关函数。strcpy_作用于char*而不是std::string 因为strcpy是一个C函数,以char*作为参数,所以当您有对象时不需要它:C_task=std::moven_task;。在问题中的代码中,strcpy_应替换为赋值运算符,而不是复制构造函数。目标对象已被构造。
class Tasks {
public:
std::string c_task = "";
int date;
int category;
int priority;
void newTask(std::string n_task);
};
void Tasks::newTask(std::string n_task)
{
c_task = std::move(n_task);
}