版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bjbz_cxy/article/details/87871268
CharString类库是SDT(Standard Development Toolkit 标准开发工具包)库中属于字符处理类库的函数,由博主自己开发的,跨平台,且纯C/C++实现,代码风格良好,逻辑思路清晰,且对指针以及内存管理方面严谨,适合初学者或者已经正在工作人员下载下来学习,或者运用到实际工作当中去,此类库也是博主在开发一个完整的大型WEB服务器架构中的一个模块,先逐步开源,这样就不止于日后开源WEB服务器导致各位看不懂的现象!
后续我会逐渐开源SDT类库中的所有模块,部分较为难度过大!
Linux下:只需要将.h和.cpp文件copy到Linux目录下,然后编译成.o库,最后包含头文件合并链接即可!
Windows平台下:已经将VS解决方案打包放入,打开编译成.dll会生成.lib和.dll。包含到工程中在引用头文件即可!
无需担心代码平头不兼容问题,类库完全基于标准编写而成!且以效率优先!
下面是类库的API帮助文档,可以下载文件后在Debug目录下找到HTML格式的API帮助文档:
CharString帮助手册
1.CharString
函数/声明 CharString()
类型 构造
作用 构造CharString类,初始化内部字符指针
示列 CharString Str;//声明与初始化完成,内部字符指针以及函数内存分配完成,且字符指针会被初始化为NULL
返回值: 无
备注 无
重载/声明 CharString(const char* str)
参数 const char* str:要初始化为的字符串
示列 CharString Str("this CharString!")//声明并且为该类分配内存,且将字符内存初始化为“this CharString
返回值: 无
备注 无
2.~CharString
函数/声明 ~CharString()
参数 无
类型 释放类
作用 该类只会在程序结束或者线程执行完成后被调用,作用会释放掉类的内存,下次不可用!
返回值: 无
备注 无
3.Relete
函数/声明 void Relete()
参数 无
类型 释放
作用 释放字符指针空间
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.Relete()//字符指针初始化为NULL
返回值: 无
备注 调用此API后只会释放字符指针而不释放类,调用此类后可继续调用其它函数,但不可用于打印或者获取字符指针的函数!
4.DeleteAppointStr
函数/声明 char DeleteAppointStr(char str, int Method, BOOL Retain)
参数 char str:指定的字符
int Method:起始遍历位置,比如给0前就从字符的第0个开始,给1就从最后一个字符开始
bool Retain:是否保留原字符比如hello 删除e后的llo,如果给true则保留e输出he
类型 功能
作用 用于删除字符尾巴,指定字符,即可删除字符后的所有字符串
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.DeleteAppointStr(' ',0,false)//删除空格以后的字符,不保留空格
输出 helloword
返回值: 成功返回1,失败返回0
备注 无
5.GetStrSize
函数/声明 signed long long int GetStrSize()
参数 无
类型 获取字符串大小
作用 用于获取字符串大小,并非实际字符指针指向内存的字节大小
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.GetStrSize()//获取大小
输出 10
返回值: 成功返回获取到的字符串大小,失败返回0
备注 获取不包含结尾字符\0
6.Print_Cmd
函数/声明 char Print_Cmd()
参数 无
类型 功能
作用 用于将字符打印到CMD窗口
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.Print_Cmd()//打印字符
输出 hello word
返回值: 成功打印字符串,失败返回0
备注 如果字符为空,返回0
7.Input
函数/声明 char Input(const char *Str)
参数 const char *Str:要压入的字符
类型 功能
作用 将字符串压入
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.Input("你好!世界!")//压入字符
输出 你好!世界!
返回值: 成功打印1,失败返回0
备注 如果类中原本有字符的话,使用此函数原字符会被替换。
8.Splicing
函数/声明 char Splicing(const char *Str)
参数 const char *Str:要拼接的字符串
类型 功能
作用 拼接字符串
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.Splicing("!")//拼接字符串
输出 hello word!
返回值: 成功打印1,失败返回0
备注 如果类中原本有字符的话,使用此函数原字符会被替换。
9.GetData
函数/声明 char* GetData()
参数 无
类型 功能
作用 获取字符指针指向的内存空间
示列 CharString Str("hello word");//字符指针初始化为hello word
printf("%s",Str.GetData());
输出 hello word
返回值: 成功返回字符指针指向的地址空间,失败返回0
备注 无
10.GetReturnData
函数/声明 char* GetReturnData()
参数 无
类型 功能
作用 拷贝字符指针指向的内存空间,并申请一块新的内存空间来存放拷贝的数据
示列 CharString Str("hello word");//字符指针初始化为hello word
char *copy_str = Str.GetReturnData();//深拷贝
Str.Relete();
printf("%s",copy_str);
输出 hello word
返回值: 成功返回拷贝后的新内存空间,失败返回0
备注 如果使用此函数获取了数据,当原类被释放后,此拷贝的字符依旧可以使用,但如果使用GetData获取的就不可以使用了!
11.TailoringIndexToIndex
函数/声明 int TailoringIndexToIndex()
参数 char A:要裁剪的A
char B:要裁剪的B
类型 功能
作用 裁剪符号A和符号B之间的字符串
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.TailoringIndexToIndex('e','w')
输出 heword
返回值: 成功返回1,失败返回0
备注 无
12.Format_Str
函数/声明 int Format_Str(T Format,int Index) template typename T
参数 T Format:要加入的其它类型数据
int Index:在第几个字符后加入,给0则覆盖添加
类型 功能
作用 加入其它格式的字符
示列 CharString Str("hello word");//字符指针初始化为hello word
int a = 3;
Str.Format_Str(a,0)
输出 3
示列2 CharString Str("hello word");//字符指针初始化为hello word
int a = 3;
Str.Format_Str(a,1)
输出2 h3ello word
返回值: 成功返回1,失败返回0
备注 模版函数
13.InsertTxT
函数/声明 int InsertTxT(const char* Str,int Index)
参数 const char* Str:要加入的文本
int Index:在第几个字符后插入
类型 功能
作用 插入文本
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.InsertTxT(“d”,1)
输出 hdello word
返回值: 成功返回1,失败返回0
备注 无
14.EmptyTxT
函数/声明 int EmptyTxT()
参数 无
类型 功能
作用 清空文本
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.EmptyTxT()
输出
返回值: 成功返回1,失败返回0
备注 无
15.SetTxT
函数/声明 int SetTxT()
参数 char Str
类型 功能
作用 文本统一置值
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.SetTxT('s')
输出 ssssssssss
返回值: 成功返回1,失败返回0
备注 无
16.GetStrTxTIndx
函数/声明 int GetStrTxTIndx(const char* Str)
参数 const char* Str:要检索的字符串
类型 功能
作用 检索字符串
示列 CharString Str("hello word");//字符指针初始化为hello word
int Index = Str.GetStrTxTIndx('llo')//获取索引
输出 3
返回值: 成功返回索引,失败返回0
备注 无
二次实现/声明 int GetStrTxTIndxRepeat(const char* Str,int Repeat)
参数 const char* Str:要检索的字符串
int Repeat:重复次数
作用 检索字符串
示列 CharString Str("hello llo word");//字符指针初始化为hello word
int Index = Str.GetStrTxTIndxRepeat('llo',1)//获取索引
输出 7
备注 无
二次实现/声明 int GetStrTxTIndxA(const char* Str)
参数 const char* Str:要检索的字符串
作用 检索字符串
示列 CharString Str("hello llo word");//字符指针初始化为hello word
int Index = Str.GetStrTxTIndxA('llo')//获取索引
输出 6(3+llo大小)
备注 返回的大小会加上要检索的字符大小
二次实现/声明 int GetStrTxTIndxRepeatA(const char* Str,int Repeat)
参数 const char* Str:要检索的字符串
int Repeat:重复次数
作用 检索字符串
示列 CharString Str("hello llo word");//字符指针初始化为hello word
int Index = Str.GetStrTxTIndxRepeatA('llo',1)//获取索引
输出 10(7+llo大小)
备注 返回的大小会加上要检索的字符大小
二次实现/声明 int GetStrTxTIndxRepeatEx(const char* Str,int Repeat)
参数 const char* Str:要检索的字符串
int Repeat:重复次数
作用 检索字符串
示列 CharString Str("hello llo word");//字符指针初始化为hello word
int Index = Str.GetStrTxTIndxRepeatEx('llo',1)//获取索引
输出 11(7+llo大小+1)
备注 返回的大小会加上要检索的字符大小在+1
二次实现/声明 int GetStrTxTIndxEx(const char* Str)
参数 const char* Str:要检索的字符串
作用 检索字符串
示列 CharString Str("hello llo word");//字符指针初始化为hello word
int Index = Str.GetStrTxTIndxEx('llo')//获取索引
输出 7(3+llo大小+1)
备注 返回的大小会加上要检索的字符大小在+1
17.JumpTxTExits
函数/声明 bool JumpTxTExits()
参数 无
类型 功能
作用 判断文本是否存在
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.JumpTxTExits("llo")
输出 true
返回值: 成功返回true,失败返回false
备注 无
18.GetLineTxT
函数/声明 int GetLineTxT(int LineIndex)
参数 int LineIndex:要取的第几行文本
类型 功能
作用 获取一行文本
示列 CharString Str("hello\nword\n");//字符指针初始化为hello word
Str.GetLineTxT(2)
输出 word
返回值: 成功返回取得的文本,错误返回0
备注 每行字符必须以\n结尾
19.GetLineNum
函数/声明 int GetLineNum()
参数 无
类型 功能
作用 获取文本多少行
示列 CharString Str("hello\nword\n");//字符指针初始化为hello word
Str.GetLineNum()
输出 2
返回值: 成功返回行号,错误返回0
备注 每行字符必须以\n结尾
20.GetTxTLineNum
函数/声明 int GetTxTLineNum(char *Str)
参数 char* Str:要取的文本
类型 功能
作用 获取文本所在第几行里
示列 CharString Str("hello\nword\n");//字符指针初始化为hello word
Str.GetTxTLineNum("word")
输出 2
返回值: 成功返回行号,错误返回0
备注 每行字符必须以\n结尾
21.GetRightTxT
函数/声明 char* GetRightTxT(int Length)
参数 int Length:取右边多少个字符
类型 功能
作用 取右边字符串
示列 CharString Str("hello\nword\n");//字符指针初始化为hello word
char* ristr = Str.GetRightTxT(3)
输出 hel
返回值: 成功返回获取到的字符串,错误返回0
备注 从右边第0个字符开始取
22.GetRightIndex
函数/声明 int GetRightIndex()
参数 无
类型 功能
作用 获取文本索引
示列 CharString Str("hello word");//字符指针初始化为hello word
int ristr = Str.GetRightIndex()
输出 10
返回值: 成功返回获取到的右边有效字符,错误返回0
备注 无
23.GetLeftTxT
函数/声明 int GetLeftTxT(int Length)
参数 int Length:要获取的左边文本长度
类型 功能
作用 获取左边文本
示列 CharString Str("hello word");//字符指针初始化为hello word
char* ristr = Str.GetLeftTxT(2)
输出 rd
返回值: 成功返回获取到的左边字符,错误返回0
备注 无
23.GetLeftIndex
函数/声明 int GetLeftIndex()
参数 无
类型 功能
作用 获取左边有效文本
示列 CharString Str("hello word");//字符指针初始化为hello word
int ristr = Str.GetLeftIndex()
输出 10
返回值: 成功返回获取到的左边有效字符长度,错误返回0
备注 无
24.GetMiddle
函数/声明 char* GetMiddle(int Length)
参数 int Length:要获取的中间文本长度
类型 功能
作用 获取中间文本
示列 CharString Str("hello word");//字符指针初始化为hello word
char* ristr = Str.GetMiddle(2)
输出 w
返回值: 成功返回获取到中间文本向右的字符,错误返回0
备注 无
25.GetMiddleIndex
函数/声明 int GetMiddleIndex()
参数 无
类型 功能
作用 获取中间文本索引
示列 CharString Str("hello word");//字符指针初始化为hello word
int ristr = Str.GetMiddleIndex()
输出 6
返回值: 成功返回获取到的中间字符索引,错误返回0
备注 无
26.IndexToCharCutOut
函数/声明 int IndexToCharCutOut(int Index, char Str)
参数 int Index:要截取的索引号1
char Str:要截取的字符
类型 功能
作用 索引到字符的截取
示列 CharString Str("hello word");//字符指针初始化为hello word
char* ristr = Str.IndexToCharCutOut(1,'l')
输出 e
返回值: 成功返回截取的字符,错误返回0
备注 字符必须大于索引
27.CharToCharCutOut
函数/声明 int CharToCharCutOut(char Str1, char Str2)
参数 char Str1:要截取的字符1
char Str2:要截取的字符2
类型 功能
作用 字符到字符之间的截取
示列 CharString Str("hello word");//字符指针初始化为hello word
char* ristr = Str.CharToCharCutOut(‘h’,'l')
输出 e
返回值: 成功返回截取的字符,错误返回0
备注 字符1必须大于字符2
28.ThreePoints_AnalysisTxTtoArr
函数/声明 int ThreePoints_AnalysisTxTtoArr(char Str1, char Str2, char Str3, int Index)
参数 char Str1:开始符号
char Str2:中间符号
int Index:索引
类型 功能
作用 三点文本解析,用于解析组合类的格式字符串,每个符号不能相同
示列 CharString Str("adx:11,22,33\n");//字符指针初始化
char* ristr = Str.ThreePoints_AnalysisTxTtoArr(‘:’,',','\n',1)
输出 11
示列2 CharString Str("adx:1,2,3\n");//字符指针初始化
char* ristr = Str.ThreePoints_AnalysisTxTtoArr(‘:’,',','\n',2)
输出 22
返回值: 成功返回截取的字符,错误返回0
备注 每个符号不能相同
二次实现/声明 int ThreePoints_AnalysisGetTxTtoArrNum(char Str1, char Str2, char Str3)
参数 char Str1:开始符号
char Str2:中间符号
char Str3:结束符号
int Index:索引
类型 功能
作用 三点文本解析,获取目标组合字符串多少个分割模版
示列 CharString Str("adx:11,22,33\n");//字符指针初始化
int ristr = Str.ThreePoints_AnalysisGetTxTtoArrNum(‘:’,',','\n')
输出 3
返回值: 成功返回可裁剪模版数量,错误返回0
备注 每个符号不能相同
29.CutOutTxT
函数/声明 int CutOutTxT(char *Str)
参数 char *Str:要裁剪掉的字符串
类型 功能
作用 裁剪字符
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.CharToCharCutOut(" word")
输出 hello
返回值: 成功返回1,错误返回0
备注 无
int CutOutTxT(char Str) 重载实现,裁剪字符
int CutOutTxT(int Index) 重载实现,裁剪索引
30.TxTReveresOrder_AfterToFront
函数/声明 int TxTReveresOrder_AfterToFront()
参数 无
类型 功能
作用 文本逆序-后到前
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.TxTReveresOrder_AfterToFront()
输出 drow olleh
返回值: 成功返回1,错误返回0
备注 无
31.TxTReveresOrder_FrontToAfter
函数/声明 int TxTReveresOrder_FrontToAfter()
参数 无
类型 功能
作用 文本逆序-前到后
示列 CharString Str("drow olleh");//字符指针初始化为hello word
Str.TxTReveresOrder_FrontToAfter()
输出 hello word
返回值: 成功返回1,错误返回0
备注 无
32.TxTReplace
函数/声明 int TxTReplace(const char* Str1, const char* Str2)
参数 const char* Str1:要被替换的字符
const char* Str2:替换的字符
类型 功能
作用 文本替换
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.TxTReplace("hello","word")
输出 word word
返回值: 成功返回1,错误返回0
备注 无需担心被替换的字符不大于替换的字符,内存会动态增删
重载.TxTReplace
函数/声明 int TxTReplace(int Index, const char* Str1)
参数 int Index:从第几个字符开始
const char* Str2:要替换的字符
类型 功能
作用 文本替换
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.TxTReplace(1,"wordiii")
输出 wordiii word
返回值: 成功返回1,错误返回0
备注 无需担心被替换的字符不大于替换的字符,内存会动态增删
33.CORRECT_STR
函数/声明 int CORRECT_STR()
参数 无
类型 功能
作用 文本替换
示列 CharString Str("hello word");//字符指针初始化为hello word
Str.CORRECT_STR()
输出 hello word
返回值: 成功返回1,错误返回0
备注 无需担心被替换的字符不大于替换的字符,内存会动态增删
34.GetFormatTwo
函数/声明 char* GetFormatTwo(const char Format, int Str_Index)
参数 const char Format:格式
int Str_Index:0左,1右
类型 功能
作用 格式裁剪
示列 CharString Str("上海|苏州");//字符指针初始化为hello word
Str.GetFormatTwo('|',0)
输出 上海
返回值: 成功返回取到的,错误返回0
备注 无
35.IF_Char
函数/声明 int IF_Char(char Char_)
参数 char Char_:要判断的字符
类型 功能
作用 判断字符是否存在
示列 CharString Str("helo");//字符指针初始化
Str.IF_Char('e')
输出 true
返回值: 成功返回1,错误返回0
备注 无
36.Clip
函数/声明 char* Clip(char Format, int About, int Index = 1, char InFormat = 0x20)
参数 char Format:格式
int About:0左,1右
int Index = 1:要取的索引号
char InFormat = 0x20:索引分割符
类型 功能
作用 裁剪格式字符
示列 CharString Str("上海|苏州 北京|徐州");//字符指针初始化
Str.Clip('|',0,2,' ')
输出 北京
返回值: 成功返回截取到的值,错误返回0
备注 无
二次实现/声明 ClipLine(char Format, int About, int Line, int Index = 1, char InFormat = 0x20)
备注 int Line为要截取的第几行,每行必须是\n结束
37.STR_IF_CORRECT
函数/声明 char* STR_IF_CORRECT()
参数 无
类型 功能
作用 判断字符串是否正确
示列 CharString Str("上海|苏州 北京|徐州");//字符指针初始化
Str.STR_IF_CORRECT()
输出 true
返回值: 成功返回1,错误返回0
备注 无
38.Mid
函数/声明 char* Mid(int Index, int Lent)
参数 int Index:索引
int Lent:长度
类型 功能
作用 裁剪指定索引后的字符
示列 CharString Str("hello word");//字符指针初始化
Str.Mid(3,4)
llo
返回值: 成功返回获取到的字符串,错误返回0
备注 无
39.Nsize
函数/声明 bool Nsize()
参数 无
类型 功能
作用 判断字符是否大于0
示列 CharString Str("hello word");//字符指针初始化
Str.Nsize()
true
返回值: 成功返回真,错误返回0
备注 无
40.JuNum
函数/声明 bool JuNum(int Index)
参数 int Index:判断指定索引是否是数字
类型 功能
作用 判断指定字符是否是数字
示列 CharString Str("hello word");//字符指针初始化
Str.JuNum(2)
false
返回值: 成功返回真,错误返回0
备注 无
41.JuNumStr
函数/声明 bool JuNumStr()
参数 无
类型 功能
作用 判断字符串是否是数字
示列 CharString Str("hello word");//字符指针初始化
Str.JuNum()
false
返回值: 成功返回真,错误返回0
备注 无
42.GetStrAfterNum
函数/声明 int/char* GetStrAfterNum/GetStrAfterNumA(char* Str)
参数 无
类型 功能
作用 获取指定字符后的数字
示列 CharString Str("he=123 ll");//字符指针初始化
int t = Str.GetStrAfterNum("he=")
123
返回值: 成功返回获取到的数字,错误返回0
备注 无
获取Double int/char* GetStrAfterDouble/GetStrAfterDoubleA(char* Str)
43.Cin
函数/声明 char* Cin(char Format, int Index)
参数 char Format:格式
int Index:索引
类型 功能
作用 分式裁剪
示列 CharString Str("wec,weo,yun");//字符指针初始化
int t = Str.GetStrAfterNum(',',1)
wec
返回值: 成功返回获取到的字符,错误返回0
备注 无
44.CharSet
函数/声明 char* CharSet(char Str1, char Str2)
参数 char Str1:被变更的字符
char Str2:变更的字符
类型 功能
作用 字符变更
示列 CharString Str("wec,weo,yun");//字符指针初始化
int t = Str.GetStrAfterNum('e','w')
wwc,wwo,yun
返回值: 成功返回获取到的字符,错误返回0
备注 无
名字:CharString类库
作者:17岁boy想当攻城师
简介:CharString类库是本人WEB服务器上的一个分支模块
此库是开源,免费,跨平台
如果您对此库有更好的建议或者API可以将源代码发送至
[email protected] 支持的运算符
运算符 =
示列 CharString str = "123"
输出 123
示列2 CharString str
str = '1'
输出 1
运算符 +
示列 CharString str = "123"
str + '1'
输出 1231
运算符 -
示列 CharString str = "123"
str - '1'
输出 23
运算符 []
示列 CharString str = "123"
str[1]
输出 1
运算符 %
示列 CharString str = "1\n2\n3"
%str
输出 3
运算符 ==
示列 CharString str = "123"
str=="345"
输出 false
运算符 ()
示列 CharString str("123")
输出 123
附源代码(为了不浪费大家的C币(百度网盘)):https://pan.baidu.com/s/1SKNBsgIR9j_gp0rnvTn1Nw
Github:https://github.com/beiszhihao/SDT/tree/master/CharString