真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

自己模擬寫C++中的String類型實(shí)例講解

下面是模擬實(shí)現(xiàn)字符串的相關(guān)功能,它包括一下功能:

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、成都做網(wǎng)站、大箐山網(wǎng)絡(luò)推廣、微信小程序、大箐山網(wǎng)絡(luò)營(yíng)銷、大箐山企業(yè)策劃、大箐山品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供大箐山建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

String(const char * s);//利用字符串來初始化對(duì)象
String();      //默認(rèn)構(gòu)造函數(shù)
String(const String & s);//復(fù)制構(gòu)造函數(shù),利用String類型來初始化對(duì)象
~String();      //析構(gòu)函數(shù)
int length();      //返回String類型中字符串的長(zhǎng)度
String & operator=(const String & s);//重載=運(yùn)算符。
String & operator=(const char *);
char & operator[](int i);  //重載【】運(yùn)算符
const char & operator[](int i) const;
friend bool operator<(const String & st,const String & st2);//重載<運(yùn)算符,用來比較String類型中字符串的大小。
friend bool operator>(const String & st,const String & st2);
friend bool operator==(const String & st,const String & st2);//重載==運(yùn)算符,判斷兩個(gè)String對(duì)象是否相等
friend ostream & operator<<(ostream & os,const String & st2);//重載輸出函數(shù)
friend istream & operator>>(istream & is,String & st2);//重載輸入函數(shù)
static int HowMang()//返回總共生成的String類對(duì)象的數(shù)目。

String.h:

#ifndef STRING_H_INCLUDED
#define STRING_H_INCLUDED
#include"iostream"
#include
using std::ostream;
using std::istream;
class String{
private:
  char * str;
  int len;
public:
  static int num_strings;
  static const int CINLM=80;
  String(const char * s);
  String();
  String(const String & s);
  ~String();
  int length();
  String & operator=(const String & s);
  String & operator=(const char *);
  char & operator[](int i);
  const char & operator[](int i) const;
  friend bool operator<(const String & st,const String & st2);
  friend bool operator>(const String & st,const String & st2);
  friend bool operator==(const String & st,const String & st2);
  friend ostream & operator<<(ostream & os,const String & st2);
  friend istream & operator>>(istream & is,String & st2);
  static int HowMang()
  {
    return num_strings;

  }
};


#endif // STRING_H_INCLUDED

String.cpp:

#include
#include"String.h"
#include"string.h"
using namespace std;
int String::num_strings=0;
int String::length()
{
  return this->len;
}
  String::String(const char * s)
  {
    len=strlen(s);
    str=new char[len+1];
    num_strings++;
  }
  String::String()
  {
    str=0;
    len=0;
    num_strings++;
  }

  String::String(const String & s)
  {
    num_strings++;
    len=strlen(s.str);
    str=new char[len+1];
    strcpy(str,s.str);
  }
  String::~String()
  {
    --num_strings;
    delete [] str;
    len=0;
  }
  String & String::operator=(const String & s)
  {
    if(this==&s)
      return *this;
    delete [] str;
    len=strlen(s.str);
    str=new char[len+1];
    strcpy(str,s.str);
    // num_strings++;
  }
  String & String::operator=(const char * s)
  {
    len=strlen(s);
    str=new char[len+1];
    strcpy(str,s);
   // num_strings++;
  }
  char & String::operator[](int i)
  {
    return str[i];
  }
  const char & String::operator[](int i) const
  {
    return str[i];
  }
  bool operator<(const String & st,const String & st2)
  {
    if(strcmp(st.str,st2.str)<0)
      return true;
    else
      return false;
  }
  bool operator>(const String & st,const String & st2)
  {
    return (st0)
      return true;
    else
      return false;
  }
  ostream & operator<<(ostream & os,const String & st2)
  {
    os<>(istream & is,String & st2)
  {
    char temp[String::CINLM];
    is.get(temp,String::CINLM);
    if(is)
      st2=temp;
    while(is&&is.get()!='\n')
      continue;
    return is;
  }

main.cpp:

#include 
#include"String.h"
using namespace std;
int main()
{
  String name[5];
  char temp[10];
  int i;
  for(i=0;i<5;i++)
  {
    cin.get(temp,10);
    while(cin&&cin.get()!='\n')
    continue;
    if(!cin&&temp[0]=='\0')//如果是空串的話,cin會(huì)為false
     break;
    else
    name[i]=temp;
  }
  int total=i;
  int firs=0,shor=0;
  if(total<0)
  {
    cout<<"沒有輸入"<

以上這篇自己模擬寫C++中的String類型實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持創(chuàng)新互聯(lián)。


分享標(biāo)題:自己模擬寫C++中的String類型實(shí)例講解
網(wǎng)站URL:http://weahome.cn/article/jsojjh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部