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

来源:互联网 发布:海岛奇兵英雄等级数据 编辑:程序博客网 时间:2024/05/22 13:44

#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;
}

原创粉丝点击