第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用C++ 該如何實現(xiàn)MyString類 ?有什么更好的辦法嗎?

使用C++ 該如何實現(xiàn)MyString類 ?有什么更好的辦法嗎?

翻閱古今 2021-06-28 11:07:02
設(shè)計你自己的字符串類MyString1,并實現(xiàn)下面函數(shù):MyString1();MyString1(char *chars);MyString1(char char[], int size);MyString1 append(MyString1 s);MyString1 append(MyString1 s, int index, int n);MyString1 assign(char chars[]);MyString1 assign(MyString1 s, int index, int n);char at(int index);int length();void clear();MyString1 erase(int index, int n);//刪除當前從index開始的n個字符bool empty();int compare(MyString1 s);請寫出MyString類,然后實現(xiàn)以上函數(shù),謝謝?。?
查看完整描述

2 回答

?
POPMUISE

TA貢獻1765條經(jīng)驗 獲得超5個贊

//測試程序如下
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <iterator>
#include <sstream>
#include <cstdlib>
using namespace std;
class Mystring
{
private:
char *a;
int len;
public:
Mystring()
{
len=0;
}
Mystring(char* s)
{
len=strlen(s);
a=new char[len+1];
memcpy(a,s,len+1);
}
void input() //輸入任意長度的字符串
{
char *p = new char[len], ch;
int i = 0;
len = 16;
while(cin>>ch)
{
if(i >= len)
{
char *q = new char[len *= 2];
memcpy(q, p, i);
delete []p;
p = q;
}
p[i++] = ch;
}
len = i;
a = p;
}
void join(const Mystring &s) //在字符串尾部連接上s
{
if(s.len < 1)
return;
int t = s.len + len;
char *q = new char[t]();
memcpy(q, a, len);
memcpy(q+len, s.a, s.len);
a = q;
len = t;
}
~Mystring() //析構(gòu)函數(shù)
{
if(len)
{
delete []a;
a = NULL;
len = 0;
}
}
void Mystring::output()
{
//輸出字符串
if(len==0)
cout<<"該字符串為空!"<<endl;
else
{
for(int i = 0; i < len; i++)
{
cout<<a[i];
}
}
}
int Mystring::length()
{
return len;
}
};
void main()
{
// 類Mystring的測試程序
Mystring s1;
cout<<"字符串s1為:";
s1.output();
cout<<"字符串s1的長度為:"<<s1.length()<<endl;
cout<<"請輸入一個字符串:";
s1.input();
cout<<"字符串s1為:";
s1.output();
cout<<"字符串s1的長度為:"<<s1.length()<<endl;
Mystring s2("hello!");
cout<<"字符串s2為:";
s2.output();
cout<<"字符串s2的長度為:"<<s2.length()<<endl;
s1.join(s2);
cout<<"連接s2后字符串s1為:";
s1.output();
cout<<"字符串s1的長度為:"<<s1.length()<<endl;
s2.join(s1);
cout<<"連接s1后字符串s2為:";
s2.output();
cout<<"字符串s2的長度為:"<<s2.length()<<endl;
}



查看完整回答
反對 回復 2021-07-04
  • 2 回答
  • 0 關(guān)注
  • 415 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號