下面的函数改写自某个前辈所写的函数:
/****************************************************************************
* 函数名:_ReplaceStr
* 作者:
* 日期:
* 输入参数:char* sSrc 原字符串
* char* sMatchStr 特征字符串
* char* sReplaceStr 将要替换的字符串
* bool bReplaceAll 为true时替换所有子串,为false时只替换第一个匹配的子串
* 输出参数:无
* 返回值:int类型
* 0:成功
* -1:传入的字符串指针为空
* -2:没有找到匹配的字符串
* 功能: 将字符串sSrc中的所有sMatchStr子串全部替换为sReplaceStr字符串
*****************************************************************************/
int _ReplaceStr(char *sSrc/*IN OUT*/, char *sMatchStr/*IN*/, char *sReplaceStr/*IN*/, bool bReplaceAll/*IN*/)
{
if(NULL == sSrc || NULL == sMatchStr ||NULL == sReplaceStr )
return -1;
int StringLen;
char caNewString[DEFAULT_BUF_LEN];
char *FindPos = strstr(sSrc, sMatchStr);
if(NULL == FindPos)
return -2;
while(FindPos)
{
memset(caNewString, 0, sizeof(caNewString));
StringLen = FindPos - sSrc;
strncpy(caNewString, sSrc, StringLen);
strcat(caNewString, sReplaceStr);
strcat(caNewString, FindPos + strlen(sMatchStr));
strcpy(sSrc, caNewString);
if(!bReplaceAll)
break;
FindPos = strstr(sSrc, sMatchStr);
}
return 0;
}