'strcpy' is not a member of 'std'

来源:百度知道 编辑:UC知道 时间:2024/06/24 06:10:52
E:\studyc++\stringbad\strngbad.cpp(9) : error C2039: 'strlen' : is not a member of 'std'

程序如下:#include <string.h>
#include "strngbad.h"
using std::cout;

int StringBad::num_strings = 0;

StringBad::StringBad(const char* s)
{
len=std::strlen(s);
str=new char[len+1];
std::strcpy(str,s);
num_strings++;
cout<<num_strings<<": \""<<str<<"\" object created\n";
}

StringBad::StringBad()
{
len=4;
str=new char[4];
std::strcpy(str, "c++");
cout<<num_strings<<": \""<<str<<"\" default object created\n";
}
StringBad::~StringBad ()
{
cout<<"\""<<str<<"\" object deleted, ";
--num_strings;
cout<<num_strings<<"

寒,搞错。vc的确有问题。头文件用#include <cstring>

然后直接使用strcpy()就可以了。

BTW:你用的书是C++ Primer Plus? 我也是从这本书起步的。

这是因为C++库和编译器不完善,未能做到将原来的C语言运行库重新包装到std中。VC一般都有这样的问题,你可以试试gcc编译器。

或者:
你要将C风格的函数前面的std::去除了。
将std::strcpy该为strcpy

头文件用#include<string.h>