获取以strbegin为开始strend为结束的中间字符

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   char *string=NULL;
   char *ptr, c = 'r',*result;
   char *str1 = "begin123456end", *strbegin = "begin",*strend = "end";
   int beginindex,endindex,beginstrlength=sizeof(strbegin);
   ptr = strstr(str1, strbegin); //获取开始匹配字符串的指针
   beginindex=ptr-str1;//开始字符串坐标
   ptr = strstr(str1, strend); //获取开始匹配字符串的指针
   endindex=ptr-str1;//结束字符串的左边
   int n=endindex-beginindex-beginstrlength;//个数获取开始坐标同结束坐标中间的字符
   if(n>0)  //考虑2个字符串之间是否有字符
    {
     string=(char*)malloc((n)*sizeof(char));

     //动态申请数值的大小考虑strncpy不一定用null作为结束所以申请空间多一个指定用/0结束
     strncpy(string, str1+beginindex+beginstrlength+1, n-1); //
     string[n-1]='/0';
     printf("%s/n", string);
     free(string);
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值