c语言库函数【string.h】之 strrep_(char *src, char* oldStr, char * newStr)

c语言库函数【string.h】之 strrep_(char *src, char* oldStr, char * newStr)

 

 

 

代码如下:

#include<assert.h>

#include<stdio.h>

 

 

 

 

char * strrep_(char *src, char* oldStr, char * newStr)

{

 

 

if(src == NULL || *src == '/0')

return (char *) NULL;

if(oldStr == NULL || *oldStr == '/0' || newStr == NULL || *newStr == '/0')

return src;

 

char * pOld=oldStr;//旧字符串指针

char * pNew=newStr;//新字符串指针

 

int sLen=strlen_(src);//源字符串长度,或者调用系统strlen函数,记得引入<string.h>文件

int oLen=strlen_(oldStr);//旧字符串长度

int nLen=strlen_(newStr);;//新字符串长度

 

//存储结果的字符串

char * result=(char *)malloc( (oLen < nLen ? (float) sLen/oLen*nLen :sLen) * sizeof(char) );//分配空间

char * pRes=result;//指向结果字符串首地址

 

while(*src)//遍历源字符串

{

pOld=oldStr;//指向旧字符串首字符

while(*pOld && *src && *pOld == *src)//在源字符串中匹配旧字符串

{

pOld++;

src++;

}

if('/0' == *pOld)//匹配成功

{

pNew=newStr;//指向新字符串首字符

while(*pNew)//将新字符串赋给result

*pRes++ = *pNew++;

 

}

else//匹配不成功

{

*pRes++ = *src++;//将源字符串的字符赋给result,并后移源字符串指针

}

}

*pRes='/0';//添加结束字符

 

return result;//返回结果字符首地址

 

 

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值