网推拉新怎么做,台州首页关键词优化,长沙做公司网站大概多少钱,深圳最专业的高端网站建设string是C标准库的重要部分#xff0c;主要用于字符串处理。这里我们自己实现一个简单版本的 string.
一 思路
string 类中应该包含如下#xff1a;
1. 类成员变量#xff1a;char* m_data#xff0c;利用 char* 指针存放字符串
2. 成员函数#xff1a; 2.1 size(…string是C标准库的重要部分主要用于字符串处理。这里我们自己实现一个简单版本的 string.
一 思路
string 类中应该包含如下
1. 类成员变量char* m_data利用 char* 指针存放字符串
2. 成员函数 2.1 size(), 用于返回字符串的长度不包含字符 \0 2.2 operator[](index) 返回字符串中任意位置的字符 2.3 c_str() 将 my_string 转为 char*并返回 二 具体实现
// my_string.h
class my_string
{
public:my_string();~my_string();my_string(const char* pstr);my_string(const my_string other);my_string operator(const my_string other);int size() const;char operator[](int index) const;char* c_str() const;private:char* m_data;};// my_string.cpp
#include my_string.h
#includestring.h
#includestdio.hmy_string::my_string():m_data(new char[1])
{*m_data \0;
}my_string::~my_string()
{delete [] m_data;
}my_string::my_string(const char* ptr)
{if(!ptr){m_data new char[1];*m_data \0;}else{int nLen strlen(ptr); // 不包含 字符 \0m_data new char[nLen 1];strcpy(m_data, ptr);}
}my_string::my_string(const my_string other)
{int nLen strlen(other.m_data);m_data new char[nLen 1];strcpy(m_data, other.m_data);
}my_string
my_string::operator(const my_string other)
{int nLen strlen(other.m_data);m_data new char[nLen1];strcpy(m_data, other.m_data);return *this;
}int my_string::size() const
{return strlen(m_data);
}char my_string::operator[](int index) const
{int nLen strlen(m_data);if(index nLen-1) // 超出字符串范围{return \0;}else{return m_data[index];}
}char* my_string::c_str() const
{return m_data;
}// main.cpp
void testMyString()
{my_string str(abc);std::cout str.size() std::endl;my_string s2 str;std::cout str.size() std::endl;std::cout s2.c_str() std::endl;}int main()
{testMyString();return 0;
}