C/C++搜索并截取字符串(在字符串中寻找匹配“开头“和“结尾“并截取中间内容)例:从123abc456ghsacgha中截取“3a“到“gh“的内容:bc456

正向顺位取词:先在源字符串中从头出发匹配给出的开头字符串(未找到返回0),然后从匹配到的开头开始匹配结尾(未匹配到则返回从开头开始全部)

例:从123abc456ghsacgha中截取"3a"到"gh"的内容:bc456

返回值:截取所得字符串.
参数:
const char* source:源字符串(被截取的源)
const char* head:开头字符串(用以匹配截取 开头 位置 的字符串)
bool include_head:是否包含截取的开头(返回时前面是否含有开头字符串)
const char* end:结尾字符串(用以匹配截取 停止/收尾 位置 的字符串)
bool include_end:是否包含结尾字符串(返回时后面是否含有结尾字符串)

char* quci3(const char* source, const char* head, bool include_head, const char* end, bool include_end)
{
	const unsigned int hl = strlen(head);
	const char* hp = strstr(source, head);//匹配开头,返回开头所在指针
	char result[2048];
	memset(result, '\0', 2048);
	if (hp != NULL)//检查输入head参数是否为0(是则返回零)
	{
		if (end == NULL)//检查输入end参数是否为0(是则返回head之后的字符串)
		{
			if (include_head == true)//包含开头
			{
				strcpy_s(result, hp);//从头所在位置往后全部复制
			}
			else//不包含开头
			{
				strcpy_s(result, hp + hl);//从头的后面往后全部复制
			}
			char* lastre = (char*)malloc(strle
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值