xxxxxxzc1 2020-03-21 11:46 采纳率: 100%
浏览 306
已采纳

C++新手求助:这里用strcpy(s,t)为什么报错?

#include
using namespace std;

class STR {

private:

char* s; int m, n;

public:

STR(char* t) {
    s = new char[strlen(t) + 1];
    strcpy(s, t);
    m = 0; n = 0;
}
void fun() {
    char* p = s;
        while (*p)

        {
            if (*p ==' ' || *p == ',' || *p == '.')m++;
            if (*p == '.')n++;
            p++;
        }

}
void print() {
    cout << "字符串:" << s << endl;
    cout << "句子数:" << n << endl;
    cout << "单词数:" << m << endl;
}
~STR() { delete[]s; }

};

void main()

{
char a[200] = "i am a student. i am twenty. i come from china.";

STR text(a);
text.fun();
text.print();

}

图片说明

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-03-21 12:07
    关注

    用的是vc++吧。vc++默认禁止你使用strcpy(也包括scanf gets等)
    你有两个办法,一个参考:
    https://blog.csdn.net/nannanzhang121/article/details/96830680
    设置编译器,允许strcpy
    另一个办法是使用
    strcpy_s代替
    strcpy_s(s,strlen(t) + 1,t);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置