ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:19.50KB ,
资源ID:20949202      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20949202.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(自己实现CstringWord格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

自己实现CstringWord格式文档下载.docx

1、 TCHAR *Setm_pstr(TCHAR *p_dest); int Getm_nlen()const; int Getm_nmax()const; TCHAR *Getm_pstr()const; void DisPlay(); /重载 operator TCHAR * (); operator LPCTSTR (); void operator = ( const TCHAR ch ); void operator = ( LPCTSTR p_str ); void operator = ( const MyCString& other ); friend MyCString ope

2、rator + ( const TCHAR ch, const MyCString & friend MyCString operator + ( LPCTSTR p_str, const MyCString & other); friend MyCString operator + ( const MyCString & other1, const MyCString & other2 ); void operator += ( const TCHAR ch ); void operator += ( LPCTSTR p_dest ); void operator += ( const My

3、CString &other ); TCHAR & operator ( int pos ); /查找 int MyFind(const TCHAR ch,int nstart=0); int MyFind(LPCTSTR p_dest,int nstart=0); /替换 int MyReplace(LPCTSTR p_dest,LPCTSTR p_strc); int MyReplace(const TCHAR ch,LPCTSTR p_desc); int MyReplace(LPCTSTR p_desc,const TCHAR ch); int MyReplace(const TCHA

4、R old_ch,const TCHAR new_ch); /比较 相等为0,大于为1,小于为-1; int MyCompare(LPCTSTR p_dest); int MyCompare(MyCString & int MyCompareNotCase(LPCTSTR p_dest);/区分大小写 int MyCompareNotCase(MyCString & /追加 在字符串的尾部 成功返回当前的长度 不成功返回-1; int MyAppend ( const TCHAR ch ); int MyAppend ( LPCTSTR p_str ); int MyAppend ( cons

5、t MyCString & /大小写转换 void MyMakeUpper(TCHAR *p_dest); void MyMakeLower(TCHAR *p_dest); /格式化输出 void MyFormat(TCHAR* fmt, .); /删除函数 int MyRemove ( int n_Start, int n_Num );/nStart 开始处,nNum 多少个数 /插入函数 int MyInsert ( const TCHAR ch,int n_Start );/插入字符,起始位子 int MyInsert ( LPCTSTR p_str,int n_Start );/插入字

6、符串,起始位子 bool MyApply(int n_Num); TCHAR * Mycpy(TCHAR *pstr,TCHAR *pdes); int MyStrcmp(LPCTSTR p_str); int Mycmp(TCHAR *str,TCHAR *dst); /空;#include Mycstring.h/构造函数MyCString:MyCString():m_pstr(NULL),m_nlen(0),m_nmax(0),refCount(NULL) m_pstr=new TCHARNSIZE; memset(m_pstr,0,NSIZE); m_nlen=1; m_nmax=NS

7、IZE; refCount = new int(1);MyCString(const TCHAR ch): m_pstr=new TCHAR1+NSIZE;,1+NSIZE); m_pstr0=ch; m_nlen+=1; m_nmax=1+NSIZE;MyCString(LPCTSTR p_desc): int i=0; int j=0; while(*p_desc!=NULL&p_desci!=) i+; j=i; m_pstr=new TCHARi+NSIZE;,i+NSIZE); for(;i0;i-) m_pstri-1=p_desci-1; m_nlen=j+1; m_nmax=m

8、_nlen+NSIZE;MyCString(const MyCString & other): int i = other.m_nlen; m_pstr = new TCHARi + NSIZE; memset( m_pstr, , i + NSIZE ); m_nmax = i ; m_nlen= i; for( ; i 0 ; i- ) m_pstri-1 = other.m_pstri-1; refCount=other.refCount; +*refCount; m_nmax=other.m_nmax-NSIZE;/析构函数MyCString() if(-*refCount (*ref

9、Count)-; LPCTSTR p=m_pstr; m_pstr=new char m_nmax; memcpy(m_pstr,p,m_nmax);int MyCString:Setm_nlen(int n_Num) m_nlen=n_Num; return m_nlen;Setm_nmax(int n_Num) m_nmax=n_Num; return m_nmax;TCHAR *MyCString:Setm_pstr(TCHAR *p_dest) return Mycpy(m_pstr,p_dest);/获取Getm_nlen()constGetm_nmax()constGetm_pst

10、r()const return m_pstr;/输出DisPlay() cout该字符的详细信息:endl 占有字符为:Getm_nlen()申请空间为:Getm_nmax()字符长度为:Getm_pstr()endl;/查找MyFind(const TCHAR ch,int n_Start) for(i=n_Start;im_nlen;i+) if(m_pstri=ch) return i; return -1;MyFind(LPCTSTR p_dest,int n_Start) int j=-1; int n_len=0; while(*p_dest! *p_dest+; n_len+;

11、int *next = new intn_len+1; next0 = -1; while( i n_len - 1 ) if( j = -1 | p_desti = m_pstrj ) i+; j+; nexti = j; else j = nextj; i = n_Start; j = 0; m_nlen-1 & j n_len ) delete next; if( j m_nmax) delete m_pstr; m_pstr=NULL; m_pstr=new TCHAR i+NSIZE; m_nmax=i+NSIZE;,m_nmax); 0; m_pstri - 1 = p_stri

12、- 1; m_nlen= j; operator = ( const MyCString & other ) if( other.m_nlen = m_nmax ) delete m_pstr; m_pstr = NULL; m_pstr= new TCHARother.m_nmax; m_nmax = other.m_nmax;, m_nmax); for(int i = 0; i j-) temp2j-1=m_pstrj-1; MyMakeLower(temp2); int n=Mycmp(temp1,temp2); delete temp1; delete temp2; return n

13、; int MyCString:MyCompareNotCase(MyCString & while(other.m_pstr!other.m_pstri! temp1i-1=other.m_pstri-1; temp2j-1=other.m_pstrj-1;/尾部追加MyAppend ( const TCHAR ch ) if( m_nlen = m_nmax - 1 )/判断是大于已经申请的范围内 MyApply(0); RefCount(); m_nlen-; m_pstrm_nlen = ch; m_nlen+; m_nmax+; m_pstrm_nlen=MyAppend ( LPC

14、TSTR p_str ) if( p_str = NULL ) return -1; int i = 0; int j = 0;/* TCHAR *p = NULL;*/ while( p_stri != ) j = i; if( m_nlen + i m_nmax - 1 ) MyApply(i); for( i = m_nlen-1 ; m_nlen + j ; m_pstri = p_str i - m_nlen +1 ; m_nlen += j-1; m_nmax+=j;/* m_pstrm_nlen+1=0;MyAppend ( const MyCString & if( m_nle

15、n + other.m_nlen MyApply(other.m_nlen); for(int i=0;=other.m_nlen-1;i+ ) m_pstri+m_nlen-1=other.m_pstri; m_nlen += other.m_nlen-1; m_nmax+=other.m_nmax;/格式化输出; void MyCString:MyFormat(TCHAR* fmt, .) long l_num; TCHAR* p_str; MyCString other; int key; long i = 0; va_list ap; TCHAR ch; va_start(ap,fmt

16、); /以固定参数的地址为起点确定变参的内存起始地址。 while(ch =*(fmt+i)! /首先判断print读取到了什么值 if(*(fmt+i) = % & *(fmt+i+1) = d key = 1;+i; else if(*(fmt+i) = s key = 2; +i; else if(*(fmt+i) = S key = 4; +i; else key = 3; switch(key) /根据类型进行相应的输出 case 1: l_num = va_arg(ap,int); cout l_num; break; case 2: p_str = va_arg(ap,TCHAR*); p_str;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1