#include <stdio.h>
#include <string.h>
/************************************************************************/
/* 功能:实现字符串的查找和替换,所有被替换串出现的地方都用替换串替换
/* 参数:pSrc--指向源字符串
/* pDst--指向替换完成后的字符串,并作为输出参数
/* pOldString--指向被替换字符串
/* pNewString--指向替换字符串
/************************************************************************/
void FindAndReplace(char *pSrc, char *pDst, char *pOldString, char *pNewString)
{
char *pInput = pSrc, // 指向源字符串的游动指针
*pOutput = pDst,// 指向目标字符串(即替换后的字符串)的游动指针
*p = NULL; // 指向查找到的字符串的位置的指针
int nOldStringLen= strlen(pOldString); // 被替换字符串的长度
int nNewStringLen = strlen(pNewString); // 替换字符串的长度
int nLen;
// 查找被替换字符串在源字符串中第一次出现的位置
p = strstr(pInput, pOldString);
if (p) // 如果找到了
{
while (p)
{
// 计算被替换串前边字符串的长度.
nLen = (int)(p - pInput);
// 将被替换字符串首次出现前的字符串复制到输出字符串中
memcpy(pOutput, pInput, nLen);
// 将替换串复制到输出串中
memcpy(pOutput + nLen, pNewString, nNewStringLen);
// 跳过被替换串的位置
pInput = p + nLen;
// 调整指向输出串的位置
pOutput = pOutput + nLen + nNewStringLen;
// 继续往下查找
p = strstr(pInput, pOldString);
}
// 将剩余部分复制到输出串中
strcpy(pOutput, pInput);
}
else // 如果被替换串不在源字符串中出现,则返回源字符串
{
strcpy(pDst, pSrc);
}
}
int main()
{
char src[] = "abcdesdesdrsdsdse";
char dst[100];
FindAndReplace(src, dst, "sd", "ILOVEYOU");
printf("%s\n", dst);
return 0;
}
字符串查找和替换算法
原文作者:查找算法
原文地址: https://blog.csdn.net/woaifen3344/article/details/8992536
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/woaifen3344/article/details/8992536
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。