正在加载图片...
第3章链表 ∥字符串最大长度为300(理论上可以无限长) string1 ( ∥构造空字符串 stringl( char*obstr )i ∥从字符数组建立字符串 析构函数 int Length()const i return curLen; ∥字符串长度 stringl& operator = stringl& ob ) ∥串赋值 int operator == string l& ob ) ∥判两串相等 char& operator [ int i ) ∥取串中字符 stringl& operator ()(int pos, int len ) ∥取子串 string l& operator += stringl& ob ) 连接 求子串在串中位置(模式匹配) friend ostream& operator << ostream& os, string l& ob ) friend istream& operator >> istream& is, string l& ob ) 用单链表存储的字符串 curle ∥当前字符串长度 ∥单链表表示的字符串类 string 1成员函数的实现,在文件 string l cpp中 #include <iostream h> stringl stringI()i ∥构造函数 chRist new ListNode<char>(W0); curLen 0: 制构造函数 curLen =0; ListNode<char *p=chList =new ListNode<char>(*obstr ) while(*obstr I=W0)t link new Listnod obstr i curLen++ string l& string l operator = string l& ob)i ∥串赋值 ListNode<char> *p=ob. chList ListNode<char> *a=chList new ListNode<char>(p-data ) curLen = ob curLen: while(p->data I=10')t第 3 章 链表 28 const int maxLen = 300; //字符串最大长度为 300(理论上可以无限长) class string1 { public: string1 ( ); //构造空字符串 string1 ( char * obstr ); //从字符数组建立字符串 ~string1 ( ); //析构函数 int Length ( ) const { return curLen; } //求字符串长度 string1& operator = ( string1& ob ); //串赋值 int operator == ( string1& ob ); //判两串相等 char& operator [ ] ( int i ); //取串中字符 string1& operator ( ) ( int pos, int len ); //取子串 string1& operator += ( string1& ob ); //串连接 int Find ( string1& ob ); //求子串在串中位置(模式匹配) friend ostream& operator << ( ostream& os, string1& ob ); friend istream& operator >> ( istream& is, string1& ob ); private: ListNode<char>*chList; //用单链表存储的字符串 int curLen; //当前字符串长度 } //单链表表示的字符串类 string1 成员函数的实现,在文件 string1.cpp 中 #include <iostream.h> #include "string1.h" string1 :: string1( ) { //构造函数 chList = new ListNode<char> ( '\0' ); curLen = 0; } string1 :: string1( char *obstr ) { //复制构造函数 curLen = 0; ListNode<char> *p = chList = new ListNode<char> ( *obstr ); while ( *obstr != '\0' ) { obstr++; p = p->link = new ListNode<char> ( *obstr ); curLen++; } } string1& string1 :: operator = ( string1& ob ) { //串赋值 ListNode<char> *p = ob.chList; ListNode<char> *q = chList = new ListNode<char> ( p->data ); curLen = ob.curLen; while ( p->data != '\0' ) { p = p->link;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有