題目:以下是型別cmystring的宣告,請為該型別新增賦值運算子函式。
class cmystring
;
以下實現cmystring類中的成員方法:
標頭檔案:
#include
#include //包含相容c的字串處理函式
using
namespace
std;
**實現:
//建構函式
cmystring::cmystring(char* pdata)
else
}//拷貝建構函式
cmystring::cmystring(const cmystring& str)
//析構函式
cmystring::~cmystring()
//賦值函式1:未考慮記憶體不足問題
cmystring& cmystring::operator=(const cmystring& str)
delete m_pdata;
int length = strlen(str.m_pdata);
m_pdata = new
char[length+1];
//新標準
//strcpy_s(m_pdata,length+1,str.m_pdata);
strcpy(m_pdata,str.m_pdata);
return *this;
}//賦值函式2:先申請空間,後釋放原有記憶體。確保分配記憶體失敗時,原有的cmystring不會被修改。
cmystring& cmystring::operator=(const cmystring& str)
return *this;
}//賦值函式3:先建立臨時例項,再交換臨時例項和原來的例項。利用區域性變數的生命週期來釋放原有內容。
cmystring& cmystring::operator=(const cmystring& str)
return *this;
}//列印函式
void cmystring::print()
測試用例:
int main(int argc,char* argv)
測試結果:
text:hello world
str1:hello world
str2:hello world
str3:hello world
劍指offer 面試題28 字串的排列
題目描述 輸入乙個字串,列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c 所能排列出來的所有字串abc,acb,bac bca,cab 和cba 題目分析 可以分成兩步。第一步求所有可能出現在第乙個位置的字元,即把第乙個字元和後面所有的字元交換。第二步固定第乙個字元,求後面...
劍指offer 面試題38 字串的排列
輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。ps 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。其實就是對字串全排列,然後放到 treeset 中。放到tre...
《劍指Offer》面試題28 字串的排列
劍指offer 面試題28 字串的排列 字串的全排列和組合演算法 遞迴輸入乙個字串,列印出該字串中字元的所有排列。例如輸入字串abc,則列印出字元a b c所排列出來的所有字串abc acb bac bca cab和cba。輸入乙個字串,輸出該字串中字元的所有組合。舉個例子,如果輸入abc,它的組合...