C++ 为什么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;

所以我试着写一个小小的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;

    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);
}