|
if (*p_buff == *sub && memcmp(p_buff,sub,isub) == 0)
{
strcpyn(str,rep,irep); // 这里溢出的话,后面检查长度是没用的
str += irep;
p_buff += isub;
istr += irep;
}
else
{
*str++ = *p_buff++;//不是这里
istr++;
}
if (istr >= MAX_ENV_LEN)
return 0;
这样改一下
if( *p_buff == *sub && 0 == memcmp(p_buff, sub, isub) ) // 找到子串
{
if( irep > 0 ) // 替换串为空时相当于删除查找的子串
{
if( istr + irep > MAX_ENV_LEN ) // 检查缓存是否足够容纳替换串(缓存长度我改为MAX_ENV_LEN+1了)
return 0;
strcpyn_ex(str, rep, irep, 0);
str += irep;
istr += irep;
}
p_buff += isub;
}
[ 本帖最后由 tuxw 于 2010-10-19 00:08 编辑 ] |
|