Java教程

串类的定义和实现与字符模式匹配算法

本文主要是介绍串类的定义和实现与字符模式匹配算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
String.h
//#pragma once
 2 #include<iostream>
 3 #include<string.h>
 4 #include<cstring>
 5 using namespace std;
 6 
 7 class String {
 8 protected:
 9     //串的数据成员
10     char* sVal;  //串值
11     size_t length;//长度
12 
13 public:
14     //串的成员函数
15     String();   //构造函数
16     virtual ~String();  //析构函数
17     String(const String& s);    //复制构造函数
18     String(const char* s);       //转换构造函数
19     //String(LinkList<char>&s);   //从线性表转换的构造函数
20     int GetLength() const;       //求长度
21     bool IsEmpty() const;       //判断串是否为空
22     String& operator = (const String& s);   //赋值语句重载
23     const char* CStr() const;            //将串转换为字符数组
24     char& operator[](int p) const;      //重载下标运算符
25 };
26 
27 //串的相关函数定义P121 - P124
28 
29 int BF_find(const String& ob, const String& pat);
30 
31 
32 
33 
34 
35 
36 
37 String.cpp
38 //#pragma once
39 #include<iostream>
40 #include<string.h>
41 #include<cstring>
42 using namespace std;
43 
44 class String {
45 protected:
46     //串的数据成员
47     char* sVal;  //串值
48     size_t length;//长度
49 
50 public:
51     //串的成员函数
52     String();   //构造函数
53     virtual ~String();  //析构函数
54     String(const String& s);    //复制构造函数
55     String(const char* s);       //转换构造函数
56     //String(LinkList<char>&s);   //从线性表转换的构造函数
57     int GetLength() const;       //求长度
58     bool IsEmpty() const;       //判断串是否为空
59     String& operator = (const String& s);   //赋值语句重载
60     const char* CStr() const;            //将串转换为字符数组
61     char& operator[](int p) const;      //重载下标运算符
62 };
63 
64 //串的相关函数定义P121 - P124
65 
66 int BF_find(const String& ob, const String& pat);
67 
68 
69 
70 

Client.cpp(主程序)
71 #include "String.h"
72 
73 
74 
75 void Test_BF() {     //BF匹配算法的测试
76     String str1("hello world");
77     String str2("llo");
78     int e = BF_find(str1, str2);
79     if (e == - 1) {
80         cout << "匹配失败" << endl;
81     }
82     else {
83         cout << "匹配成功!目标字符串出现在第" << e + 1 << "个位置!" << endl;
84     }
85 }
86 
87 
88 
89 int main() {
90     Test_BF();
91 
92 
93 }//main

 

这篇关于串类的定义和实现与字符模式匹配算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!