ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2022-04-17 19:31:58  阅读:194  来源: 互联网

标签:const String int 串类 char 算法 include 模式匹配 构造函数



String.h
1 //#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

 

标签:const,String,int,串类,char,算法,include,模式匹配,构造函数
来源: https://www.cnblogs.com/JIAcheerful/p/16156919.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有