您的位置:首页 > 其它

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

2010-02-08 09:50 225 查看
#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐