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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

String类的实现.docx

1、String类的实现#include#include#include#include#includeusing namespace std;class i_stringprivate: char *str; int len;public: /构造函数 i_string(); i_string(); i_string(i_string &); i_string(char *); i_string(char ); i_string(int ); i_string(char *,int ); i_string(char ,int ); i_string(i_string& ,int);public:

2、 /位数控制输出 void Sci_out(int ); void Sci_outln(int ); void Sci_out(); void Sci_outln();public: /功能函数 int length() return len; char* begin() return &str0; char* end() return &strlen; char* Str() return str; void insert(int ,char *); void insert(int ,char); void insert(int ,i_string &); void reserve(); v

3、oid reserve(int,int); void swap(int ,int); void remove(char); void remove(int,int,char); void remove(char*); void remove(int ,int, char*); void remove(int ); void remove(int,int); void erase(char*); void erase(int ); i_string substring(int,int); i_string substring(int); _int64 valueof(); _int64 valu

4、eof(int,int); void reset(); friend void swap(char*,char*); friend void swap(char&,char&); friend void Reset(char*); friend void Reserve(char*); friend void get_next(char*,int*); friend _int64 valueof(i_string &); friend _int64 valueof(char *); friend int valueof(char ); bool empty(); bool Figure();

5、void clear();public: /值运算函数 i_string add(i_string &); i_string add(char *); i_string add(char ); i_string add(int ); i_string add(_int64); i_string mul(i_string &); i_string mul(char *); i_string mul(char ); i_string mul(int ); i_string mul(_int64 ); i_string sub(i_string &); i_string sub(char *); i

6、_string sub(char ); i_string sub(int ); i_string sub(_int64 );public: /运算符重载 i_string &operator =(i_string &); i_string &operator =(char *); i_string &operator =(char ); bool operator (i_string &); bool operator = (i_string &); bool operator = (i_string &); bool operator != (i_string &); void operat

7、or += (i_string &); void operator += (char *); void operator += (char ); i_string operator * (int ); i_string operator (int); i_string operator + (i_string & ); i_string operator + (char *); i_string operator + (char ); i_string operator (int );public: /特殊运算符 friend istream & operator ( istream &is

8、, i_string &ch ) isch.str; ch.len=strlen(ch.str); return is; friend ostream & operator (ostream &os , i_string &ch ) osch.str; return os; char* operator + (int i) return &stri; char &operator (int i) const return stri; ;/ 构造函数 /i_string:i_string() str=new char1; len=0; str0=NULL;i_string:i_string()

9、delete str;i_string:i_string(char *s) len=strlen(s); str=new charlen+1; strcpy(str,s); strlen=NULL;i_string:i_string(char c,int n) len=n; str=new charlen+1; for(int i=0;ilen;i+) stri=c; strlen=NULL;i_string:i_string(char c) len=1; str=new char2; str0=c; str1=NULL;i_string:i_string(int n) len=n; str=

10、new charlen+1; for(int i=0;in;i+) stri=0; strlen=NULL;i_string:i_string(i_string &i_str) len=i_str.len; str=new charlen+1; strcpy(str,i_str.str); strlen=NULL;i_string: i_string(char *s,int n) int k=strlen(s); len=n*k; str=new charlen+1; for(int i=0;ik;i+) for(int j=0;jn;j+) strj*k+i=si; strlen=NULL;

11、i_string: i_string(i_string& ch,int n) len=n*ch.len; str=new charlen+1; for(int i=0;ich.len;i+) for(int j=0;jn;j+) strj*ch.len+i=ch.stri; strlen=NULL;/输出函数/void i_string:Sci_out(int w) i_string i_str(*this); i_str.reset(); if(w=0) coutOutput error=len) couti_str.str; else int op=0; if(i_str.str0=-)

12、op=1,w+; i_string s(i_str.substring(w); if(i_str.strw5) couts.str0; if(s.str0=-) cout1+op) cout.; couts.str+(1+op)*e0?s.sub(1):s.add(1); if(ks.len) i_str.len+; s.remove(s.len); couts.str0; if(s.str0=-) cout1+op) cout.; couts.str+(1+op)*eSci_out(w); coutSci_out(1);void i_string:Sci_outln() this-Sci_o

13、ut(1); coutendl;/ 运算符重载 /i_string& i_string:operator =(i_string &ch) if(this!=&ch) str=new charch.len+1; strcpy(str,ch.str); len=ch.len; strlen=NULL; return *this;i_string& i_string:operator =(char *ch) str=new charstrlen(ch)+1; strcpy(str,ch); len=strlen(ch); strlen=NULL; return *this;i_string& i_s

14、tring:operator =(char c) str=new char2; str0=c;len=1; strlen=NULL; return *this; void i_string:operator +=(i_string &ch) int k1=len,k2=ch.len; str=(char*)realloc(str,(k2+k1+1)*sizeof(char); for(int i=0;ik2;i+) strk1+i=ch.stri; len=k1+k2; strlen=NULL; void i_string:operator += (char *ch) int k1=len,k

15、2=strlen(ch); str=(char*)realloc(str,(k2+k1+1)*sizeof(char); for(int i=0;ik2;i+) strk1+i=chi; len=k1+k2; strlen=NULL;i_string i_string:operator + (char *ch) int k1=len,k2=strlen(ch),i; i_string STR(k1+k2); for(i=0;ik1;i+) STRi=stri; for(i=k1;ik2+k1;i+) STRi=chi-k1; return STR;i_string i_string:opera

16、tor + (i_string &ch) return *this+ch.str; void i_string:operator += (char ch) str=(char*)realloc(str,(2+len)*sizeof(char); strlen+=ch; strlen=NULL;i_string i_string:operator * (int c) i_string STR(*this); while(-c) STR+=*this; return STR;i_string i_string:operator (int c) if(c0) coutRuntime error0)

17、if(c%2) SUM=SUM.mul(A); A=A.mul(A); c/=2; return SUM;i_string i_string:operator + (char ch) char *c=new char2; c0=ch;c1=NULL; return *this+c;i_string i_string:operator(int n) if(n0) coutInput errorendl; exit(0) ; i_string STR(n+len); for(int i=0;i(int n) if(lenn) coutInsufficient memoryendl; exit(0)

18、 ; i_string STR(len-n); for(int i=0;ilen-n;i+) STR.stri=stri; return STR;bool i_string:operator Figure()&ch.Figure() i_string i_str1(*this),i_str2(ch); i_str1=i_str1.sub(i_str2); if(i_str10=-) return true; return false; if(strcmp(str,ch.str) (i_string &ch) if(this-Figure()&ch.Figure() i_string i_str

19、1(*this),i_str2(ch); i_str1=i_str2.sub(i_str1); if(i_str10=-) return true; return false; if(strcmp(str,ch.str)0) return true; return false;bool i_string:operator = (i_string &ch) if(this-Figure()&ch.Figure() i_string i_str1(*this),i_str2(ch); i_str1=i_str1.sub(i_str2); if(i_str10=0) return true; ret

20、urn false; if(strcmp(str,ch.str)=0) return true; return false;bool i_string:operator != (i_string &ch) if(this-Figure()&ch.Figure() i_string i_str1(*this),i_str2(ch); i_str1=i_str1.sub(i_str2); if(i_str10=0) return false; return true; if(strcmp(str,ch.str)!=0) return true; return false;bool i_string

21、:operator = (i_string &ch) if(this-Figure()&ch.Figure() i_string i_str1(*this),i_str2(ch); i_str1=i_str1.sub(i_str2); if(i_str10=0) return true; return false; if(strcmp(str,ch.str)=0) return true; return false;bool i_string:operator Figure()&ch.Figure() i_string i_str1(*this),i_str2(ch); i_str1=i_st

22、r1.sub(i_str2); if(i_str10=0) return true; return false; if(strcmp(str,ch.str)len) coutYou cant insert int the outside!pos;i-) stri=stri-1; strpos=c;len+; strlen=NULL;void i_string:insert(int pos,char *ch) if(poslen) coutYou cant insert outside!pos+k-1;i-) stri=stri-k; for(;i=pos;i-) stri=ch-k; strlen=NULL;void i_string:insert(int pos,i_string& ch) if(poslen) coutYou cant insert outside!insert(pos,ch.str);void i_string:swap(int p1,int p2) if(p11|p2len|p2len) coutSwap should inside!endl; exit(0); char tem=strp1

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

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