-
-
[原创]静态存储下字符串管理系统
-
2021-8-5 12:00 3432
-
项目简介
String_MIS是一个静态存储下的字符串管理系统,在线内存大小限定1MB,输入字符串大小限定127字节。
项目需求
1、支持包括空字符串在内的增删改查操作。
2、支持统计内存中的字符信息。
3、支持查看内存存储信息。
4、支持内存空间碎片管理。
5、支持模糊查询。
环境依赖
x86、x64平台。
项目设计
系统结构
- 用户选择功能
- 系统根据用户选择给出提示
- 用户输入数据
- 系统根据用户数据操作内存
- 系统将结果输出到界面
目录结构
- Global.h(声明全局变量,定义系统需要的常量宏)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #pragma once / / 空格符 #define SPACE 32 / / 换行符 #define LINEFEED 10 / / 空白字符保存为 - 1 #define CHARNULL -1 / / 空白字符显示为 1 #define SHOWNULL 1 #ifndef GLOBAL_H #define GLOBAL_H extern char g_szBuffer[ 1024 * 1024 ]; extern int g_nBufferSize; extern char * g_pointSelect; extern char * g_pointPresent; #endif |
- StringUI.h(定义主界面、功能选择对应结果界面相关函数)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #pragma once int StringLength(char * string); / / 功能选择界面 void StringUI(); / / 添加结果显示 void AddView( int result, char * string); / / 查询结果显示 void SelectView( int result, char * string); / / 删除结果显示 void DeleteView( int result, char * string); / / 修改字符串结果显示 void UpdateView( int result, char * oldstring, char * newstring); / / 模糊查询显示 void DimSelectView( int result, char * arrString[]); / / 存储内容显示 void ShowStringView(); / / 存储情况显示 void ShowMemoryView(char * address); / / 碎片管理显示 void MemoryFragmentView(); / / 统计单个字符结果显示 void CountCharView(char ch); / / 统计每个字符结果显示 void CountEachCharView(); |
- StringTool.h(定义辅助功能选择结果显示的函数)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #pragma once / / 显示内存存储内容 void ShowString(); / / 显示内存存储情况 void ShowMemory(char * address); / / 清理内存碎片空间 void CleanMemoryFragment(); / / 查询单个字符出现的次数 int CountChar(char ch); / / 查询所有字符出现的次数 int CountAllChar(); / / 查询每个字符出现的次数 int CountEachChar( int arrCountChar[]); |
- StringController.h(定义操作字符串的函数,操作空字符串和操作一般字符串分离,添加字符串的实现暂不支持在内存碎片处添加)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #pragma once / / 添加空字符 bool AddNull(); / / 添加字符串 bool AddString(char * string); / / 查询空字符 bool SelectNull(); / / 根据内容查询字符串 bool SelectString(char * string); / / 根据地址查询字符串 bool SelectByAddress(char * address, char string[]); / / 模糊查询 bool DimSelect(char * string, char * arrString[]); / / 删除空字符 bool DeleteNull(); / / 根据内容删除字符串 bool DeleteString(char * string); / / 根据地址删除字符串 bool DeleteByAddress(char * address, char string[]); / / 修改空字符 bool UpdateNull(char * newString); / / 修改字符串 bool UpdateString(char * oldString, char * newString); |
- StringMain.cpp(系统结构流程控制)
部署步骤
Windows平台下使用VS2019打开并编译项目,需要将源字符集和执行字符集都设置为utf-8。
使用说明
1、使用CMD运行String_MIS.exe,CMD字符编码需要设置为urf-8。
2、根据需求选择功能选项。
3、根据提示进行输入操作,ENTER键确定显示结果。
github:https://github.com/0I00II000I00I0I0
bilibili:https://space.bilibili.com/284022506
[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界
最后于 2021-8-5 12:05
被流照君编辑
,原因:
赞赏
他的文章
[分享]C++基础十七-异常机制
7763
[分享]C++基础十六-模板
8114
[分享]C++基础十五-运算符重载
8157
[分享]C++基础十四-抽象类
7877
[分享]C++基础十三-多态
7608
谁下载
看原图