字符串处理类库_CharString

22 篇文章 1 订阅

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可以将源代码发送至

2727056321@qq.com 支持的运算符

运算符	=
示列	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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

17岁boy想当攻城狮

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值