閱讀下面的程式,領會其中用到的設計方案、技術手段與演算法。
/*對於要定義的字串類cmystring,
資料成員包括:
- 字串的長度;
- 指向字串第乙個字元的指標
成員函式包括:
- 不帶引數的建構函式;
- 帶乙個型別為const char *型別的引數(用於對字串初始化)的建構函式;
- 帶乙個const cmystring&型別的複製構造引數;
- 析構函式;
- strlen函式 (用於求字串的長度);
- int find(char c) (找出字元c在本字串中第一次出現的位置,並返回其下標;如果本字串中不包含c,則返回-1);
- int find(const char *str1) ( 找出字串str1在本字串中第一次出現的位置,並返回其下標;如果本字串中不包含字串str1,則返回-1),
- int find(const cmystring& str1) (找出字串str1在本字串中第一次出現的位置,並返回其下標;如果本字串中不包含字串str1,則返回-1),
- int replace(char c1, char c2) (將本字串**現的所有字元c1用字元c2替換, 返回替換的次數);
- void replace(const char *str1, const char *str2) (將本字串中第一次出現的字串str1用字串str2替換);
- void display() (用於顯示字串)
對運算子+=等進行過載,例如,設str1和str2是兩個cmystring類的物件,
- 用str1[i]表示字串str1的下標為i的字元;
- str1+str2的結果是將str2連在str1的後面,並將結果仍然存放在 str1中;
- 用=表示賦值。
(2)編寫主函式,定義幾個cmystring類的物件,並利用鍵盤輸入字串的內容,程式設計驗證以上定義的所有函式。
*/#include #include #include using namespace std;
class cmystring
{private:
int m_nlen;
char *m_szstr;
public:
cmystring(void);
cmystring(const char *str);
cmystring(const cmystring& str1);
~cmystring(void);
int strlen(void);
int find(char c);
int find(const char *str1);
int find(const cmystring& str1);
int replace(char c1, char c2);
void replace(const char *str1, const char *str2);
char& operator(int i);
cmystring operator+(const cmystring& str1);
cmystring& operator=(const cmystring& str1);
void display()
{cout<=0)
{int len1=strlen(str1),len2=strlen(str2);
if (len1!=len2) //str1與str2長度不相等
{int len=m_nlen-len1+len2;
char *result=new char[len+1];
//求出cmystring物件從str1往後的字串將其存放與字串temp中
char *temp;
temp=new char[m_nlen-i-len1+1];
for (j=0; jm_nlen-1)
{cout<<"index out of range."<>str_1;不能輸入帶空格的字串
cin.getline(str_1,20,'\n');
cout<<"input the string to be finded:";
cin.getline(str_2,20,'\n');
cmystring str4(str_1),str5(str_2);
cout<>c1;
cout<<"input c2:";
cin>>c2;
cmystring str6(str_3);
cout<<"replace "<<'\''<>str_5;
cout<<"input the str2 you want to change to:";
cin>>str_6;
cmystring str7(str_4);
cout<<"replace first time of "<<"\""<
C語言基礎歸納 字串
字串 c 字串是位元組 char 型別 的一維陣列,以乙個0 位元組終結。c 中的常量字串,通過把字串的字元放置在雙引號 之間來編寫 1.a constant string 當編譯器在記憶體中建立乙個常量字串時,它自動在末尾新增0 位元組。但是,如果宣告了乙個用來儲存字串的char 陣列,在確定需要...
c語言基礎 字串陣列
在 c 語言中,字串實際上是使用null字元 0 終止的一維字元陣列。因此,乙個以 null 結尾的字串,包含了組成字串的字元。下面的使用字串陣列宣告和初始化建立了乙個 hello 字串。由於在陣列的末尾儲存了空字元,所以字元陣列的大小比單詞 hello 的字元數多乙個。char greeting ...
字串,QT字串類,c 字串類之間的轉換
1.std string轉換成qstring string std str abc qstring q str qstring fromstdstring std str 2.qstring轉換成std string qstring q str abc string q str.tostdstrin...