91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .gz
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-14
  • 語言: 其他
  • 標(biāo)簽: 字符串??string??開源??

資源簡介

封裝的MyString類,實(shí)現(xiàn)了大部分字符串類的操作。 包括:構(gòu)建,操作符重載,追加,賦值,比較,拷貝,查找,替換,交換,格式化,轉(zhuǎn)換成其他常用類型,大小寫切換等。 其他未實(shí)現(xiàn)的功能,希望各位修改后分享...

資源截圖

代碼片段和文件信息

/****************************************************************
*?????????文件名?MyString.cpp
*????????功能描述?自己寫的?string?類
*?????????作者?武立強(qiáng)
*?????????時(shí)間?2009-03-17
*????????????????備注?我的QQ:724992537?有問題多聯(lián)系..
??* ??修改?廖俊軍
?* ??時(shí)間?2013-11-22
?* ?備注??QQ:384668960
****************************************************************/

#include?“MyString.h“

MyString::MyString()
{
????m_data?=?new?char[1];
????*m_data?=?‘\0‘;
}
????????
MyString::MyString(const?MyString&?_other)
{
????m_data?=?new?char[strlen(_other.m_data)?+?1];
????strcpy(m_data?_other.m_data);????????????????//?類的成員函數(shù)可以直接訪問數(shù)據(jù)成員

}
????
MyString::MyString(const?char*?_pStr)
{
????if(?NULL?==?_pStr?)
????{
????????m_data?=?new?char[1];
????????*m_data?=?‘\0‘;
????}
????else
????{
????????m_data?=?new?char[strlen(_pStr)?+?1];
????????strcpy(m_data?_pStr);????????????????????//?strcpy()?函數(shù)會(huì)自動(dòng)加?‘\0‘?

????}
}

MyString::MyString(unsigned?int?_length?const?char?_ch)
{
????m_data?=?new?char[_length?+?1];
????memset(m_data?_ch?_length);
????m_data[_length]?=?‘\0‘;
}

MyString::MyString(const?char*?_pStr?unsigned?int?_length)????
{
????if(?NULL?==?_pStr?)
????{
????????m_data?=?new?char[1];
????????*m_data?=?‘\0‘;
????}
????else
????{
????????m_data?=?new?char[_length?+?1];
????????strncpy(m_data?_pStr?_length);????????//?strncpy()?不會(huì)自動(dòng)加?‘\0‘

????????m_data[_length]?=?‘\0‘;
????}????
}

MyString::MyString(?const?MyString&?_s?unsigned?int?_index?unsigned?int?_length?)
{
????if(?_index?>=?strlen(_s.m_data)?)
????{
????????m_data?=?new?char[1];
????????*m_data?=?‘\0‘;
????}
????else
????{
????????m_data?=?new?char[_length?+1];
????????strncpy(m_data?&_s.m_data[_index]?_length);
????????m_data[_length]?=?‘\0‘;
????}
}


//?析構(gòu)函數(shù)

MyString::~MyString()
{
????delete?[]m_data;
}

const?char?*?MyString::c_str(void)?const
{
????return?m_data;
}

char?*?MyString::c_str(void)
{
????return?m_data;
}

unsigned?int?MyString::length(void)?const
{
????return?strlen(m_data);
}

unsigned?int?MyString::size(?void?)?const
{
????return?strlen(m_data);
}

void?MyString::clear(?void?)
{
????delete?[]m_data;
????m_data?=?new?char[1];
????*m_data?=?‘\0‘;
}
float MyString::toFloat(void)
{
return?atof(this->m_data);
}
int MyString::toInt(void)
{
return?atoi(this->m_data);
}
long MyString::toLong(void)
{
return?atol(this->m_data);
}
double MyString::toDouble(char**?endptr)
{
return?strtod(this->m_dataendptr);
}
MyString MyString::toUpper(void)
{
int?i;
MyString?s(*this?);
for(i=0;i s.m_data[i]=toupper(s.m_data[i]);
return?s;
}
MyString MyString::toLower(void)
{
int?i;
MyString?s(*this);
for(i=0;i s.m_data[i]=tolower(s.m_data[i]);
return?s;
}

MyString&?MyString::operator=(const?MyString&?_other)
{
????if(?this?==?&_other?)????//?防止自己賦值給自己

????{
????????return?*this;
????}

????delete?[]m_data;

評(píng)論

共有 條評(píng)論