网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
自定义类_string类
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
////////////////////////////////////////////////////////////
// string类源程序
// 时间: 2005-11-2
// 程序员: 黄江斌( blog主页 http://blog.csdn.net/zerodspace
// 开发平台: VC++6.0<<单文件程序>>
////////////////////////////////////////////////////////////


#include "iostream.h"

////////////////////////////////////////////////////////////
// string类声明部分
// 时间: 2005-11-2
// 程序员: 黄江斌
////////////////////////////////////////////////////////////
#include "string.h"
#define TRIM_LEFT 1
#define TRIM_RIGHT 2
#define TRIM_BOTH 0

class string
{
public:
string();
string( const char *src );
string( string &src );
~string();
//操作符重载
void operator = ( const char *src );
//char * operator + ( string &add2 );
string operator + ( string &add2 );
operator char *();
//成员函数
const char *ToString();
char GetAt( int index );
int Len();
int FindFirstSub( string substr , int start );
bool InStr( string substr );
string Trim( int part );
string Left( int sublen );
string Right( int sublen );
string Mid( int start , int sublen );
void Replace( string strNeedReplaced , string strReplace );

private:
char *str;
int len;
};
////////////////////////////////////////////////////////////
// string类实现部分
// 时间: 2005-11-2
// 程序员: 黄江斌
////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////
// string在构造、析构函数
// string()
// string( const char *src )
// string( string &src )
// ~string()

string::string()
{
len = 0;
str = new char(len+1);
str[0] = 0;
}
string::string( const char *src )
{
len = strlen(src);
str = new char(len+1);
strcpy( str , src );
}
string::string( string &src )
{
len = src.Len();
str = new char(len+1);
strcpy( str , (char*)src );
}
string::~string()
{
}

////////////////////////////////////////////////////////////
// string类操作符重载
// string operator = ( const char *src )
// string operator + ( string &add2 )
// operator char *()

void string::operator = ( const char *src )
{
len = strlen(src);
str = new char(len+1);
strcpy( str , src );
}
string string::operator + ( string &add2 )
{
int len2 = add2.Len();
int len0 = len + len2;
char *str0 = new char(len0+1);
strcpy( str0 , str );
strcat( str0 , (char*)add2 );
string sum(str0);
return sum;
}
string::operator char *()
{
return str;
}

////////////////////////////////////////////////////////////
// string类功能函数
// const char *ToString()
// char GetAt( int index )
// int Len()
// int FindFirstSub( string substr , int start = 0 )
// bool InStr( string substr )
// string Trim( int part )
// string Left()
// string Right()
// string Mid()
// void Replace( string strNeedReplaced , string strReplace )

const char *string::ToString()
{
return str;
}
//
//得到内存编号为index的字符
char string::GetAt( int index )
{
return str[index];
}
//
//得到字符串的长度
int string::Len()
{
return len;
}
//
//得到start后(包括start)子串substr的内存编号
int string::FindFirstSub( string substr , int start = 0 )
{
if( start > len )
&nbs

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号