C 自定義字串類

2022-07-12 03:06:10 字數 2062 閱讀 7624

#ifndef _header_h

#define _header_h

#define defaultsize 128

#include#include#includeusing namespace std;

class mystring

circle: while(this->ch[i]!=pat.ch[0] && icurlength)//在母串匹配子串第乙個字元

if(i==this->curlength)//抵達母串最大長度還沒找到。返回-1

return -1;

else if(this->ch[i] == pat.ch[0])//找到了繼續匹配

if(j == pat.curlength)//抵達子串最大長度,則說明子串在母串內,返回位置

return i-j+1;

else if(i < this->curlength)//沒找到子串且母串未抵達最大位置,繼續在母串匹配子串第乙個字元

goto circle;

else            //母串抵達最大位置且沒找到子串,返回-1

return -1; }

}char& mystring::operator(int i)

mystring& mystring::operator+=(mystring& ob)//這個函式直接strcat(this->ch, ob.ch)就可以成功拼接,但是若這樣操作則無法知道字串的最大長度

bool mystring::operator !()const

bool mystring::operator != (mystring& ob)const

bool mystring::operator == (mystring& ob)const

mystring& mystring::operator = (const mystring& ob)

else

return *this;

}mystring mystring::operator()(int pos, int len)

else

return temp;

}int mystring::length()const

void mystring::print()

this->curlength = 0;

ch[0] = '\0';

}mystring::mystring(const char *init)

this->curlength = len;

strcpy(this->ch, init);

}mystring::mystring(const mystring& ob)

this->curlength = ob.curlength;

strcpy(this->ch, ob.ch);

}#endif

#include"header.h"

int main()

{ mystring st(10), st1("abcdefg");

mystring st2(st1);

st1.print(), st2.print();

st = st1(0, 4);

cout<<"st = ";

st.print();

cout<<"st1 = ";

st1.print();

st += st1;

cout<<"st + st1 = ";

st.print();

char a = st[5];

cout<

在實現自定義字串類的時候遇到兩個問題,乙個是=號過載時,引數必須為const才能正常賦值。

另乙個就是模式匹配尋找子串。

我實現的尋找子串的方法只需將母串遍歷一遍,即可得到子串位置。

具體操作就是先在母串找到子串的第乙個字元,然後檢查後面字元是否也同樣相同,不同繼續在母串後邊找與子串第乙個字元相同的字元,相同則繼續迴圈匹配,直到抵達子串或母串最大長度,若抵達子串最大長度,即找到子串位置,若沒有到母串最大長度,則繼續在母串後邊找與子串第乙個字元相同的字元。以此迴圈。

自定義字串排序

字串s和 t 只包含小寫字元。在s中,所有字元只會出現一次。s 已經根據某種規則進行了排序。我們要根據s中的字元順序對t進行排序。更具體地說,如果s中x在y之前出現,那麼返回的字串中x也應出現在y之前。返回任意一種符合條件的字串t。示例 輸入 s cba t abcd 輸出 cbad 解釋 s 現了...

自定義屬性字串

nsattributedstring ios6以後才有的 作用用來顯示自定義字串 顏色 字型 大小 uilabel label uilabel alloc initwithframe cgrectmake 0,100,320,40 label.text 你好 label.textcolor uico...

C 中自定義字串格式

一 輸出字串的時候可以按照格式輸出,數字的常用格式如下表所示 下面給出示例 int a 23 使用 string 型別的 format 方法可以按照格式輸出,並制定小數點之後的位數 string result string.format a result 23.000 string result1 ...