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

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条)

相关推荐 更多相似问题