C++面试题
提示:以下是本篇文章正文内容,下面案例可供参考
一、xxx
二、编程题
1.写一个string类。
代码如下(示例):
#include<iostream>
#include<string.h>//strcpy和strlen函数的头文件
using namespace std;
class MyString {
public:
//构造函数
MyString(const char * str=nullptr);
//析构函数
~MyString();
//拷贝构造函数
MyString(const MyString & s);
//赋值
MyString operator=(const MyString &other);
//获取字符串
char* getChar();
private:
char* m_data;
};
//构造函数
MyString::MyString(const char* str)
{
//判断 str是否为空
if (str)
{
//str不为空,我们需要把str的内容赋给m_data
m_data = new char[strlen(str)+1]; //加1,是因为char后面默认最后一位为\0
//strcpy()和strcpy_s,前面两个参数,后面三个参数。strcpy_s三个参数,第一个被赋值的对象,第二个表示长度,第三个表示赋值对象
strcpy_s(m_data,strlen(str)+1,str);
}
else
{
//str 为空,说明没有传入值
m_data = new char[1];
*m_data = '\0';
}
}
//析构函数
MyString::~MyString()
{
delete[]m_data;
}
//拷贝构造函数
MyString::MyString(const MyString& s)
{
//把mystring对象复制给当前对象
m_data = new char[strlen(s.m_data)+1];
strcpy_s(m_data,strlen(s.m_data)+1,s.m_data);
}
//赋值运算符
MyString MyString::operator=(const MyString& other)
{
//把字符串赋值给当前对象
if (this == &other)
{
//返回当前对象
return *this;
}
delete[] m_data;
m_data = new char[strlen(other.m_data)+1];
strcpy_s(m_data,strlen(other.m_data)+1,other.m_data);
return *this;
}
char* MyString::getChar()
{
return this->m_data;
}
int main()
{
MyString s1("12231");
MyString s2 = s1;
MyString s3(s2);
cout << s3.getChar()<<endl;
system("pause");
return 0;
}
2.
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())