自建一个等同于string类型的String类型而不用到string,怎么实现?
另外,内建string是如何定义的?和char*的区别有多大? 问题点数:0、回复次数:2Top
1 楼carbon107(<软件开发思想.h>)回复于 2003-11-02 13:46:36 得分 0
你可以自已定义一个string的类啊
当定这个类的对象时,要分配一定大小的空间(可以在构造函数里做)
这个string 的方法,你也要在类里定义Top
2 楼Wolf0403(废人:独活十年~心如刀割)回复于 2003-11-02 14:02:58 得分 0
class String
{
public:
String(const char * _init_str = 0)
:_Mystr((char *)malloc(_init_str ? ((strlen(_init_str) + 1) * sizeof(char)) : 1)
{
if (_init_str)
strncpy(_Mystr, _init_str, strlen(_init_str + 1));
}
~String()
{
free(_Mystr);
}
String(const String& _other):_Mystr((char *)malloc((_other.Length() + 1) * sizeof(char))
{
strncpy(_Mystr, _other._Mystr, _other.Length() + 1);
}
int Length() { return strlen(_Mystr) + 1; }
const char * c_str(){ return _Mystr; }
private:
char * _Mystr;
};
呵呵,随手写的,大体就这么简单了。当然,如果你要加入 Format 这些东西就稍微复杂一点。STL 的 string 是 basic_string<char> 模板类,可以看看。Top




