参数:
s_str:
length:
sub_str1:
sub_str2:
ret_str:
ret_len:
endindex:
返回值:
int str_inter(char *s_str,int length,char *sub_str1,char *sub_str2,char *ret_str,int ret_len,int* endindex)
{
if((length <= 0)||(s_str == NULL))
return 0;
if((sub_str1 == NULL)||(sub_str2 == NULL))
return 0;
int i;
int j=0,k=0;
int stat1=0,stat2=0;
int pos1=0,pos2=0;
int ci = 0;
for(i = 0;i<length;i++)
{
if((stat1&&stat2) || (s_str[i] == 0))
break;
if(stat1 == 0)
{
ci = i;
j = 0;
while (s_str[ci] == sub_str1[j])
{
ci++;j++;
if(sub_str1[j] == 0)
{
stat1 = 1;
pos1 = ci;
break;
}
if((s_str[ci] == 0) || (ci >= length))
break;
}
}
if(stat2 == 0)
{
ci = i;
k = 0;
while (s_str[ci] == sub_str2[k])
{
ci++;k++;
if(sub_str2[k] == 0)
{
stat2 = 1;
pos2 = ci - k;
*endindex = ci;
break;
}
if((s_str[ci] == 0) || (ci >= length))
break;
}
}
}
int ret = pos2 - pos1;
if(ret<=0)
return 0;
if (ret_len >= ret)
{
return 0;
}
for(i=0;i < ret;i++)
{
ret_str[i] = s_str[pos1++];
}
ret_str[i] = 0;
return ret;
}