c语言库函数【string.h】之 strrep_(char *src, char* oldStr, char * newStr)
来源:互联网 发布:万能恢复软件 编辑:程序博客网 时间:2024/05/19 07:28
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;//返回结果字符首地址
}
- c语言库函数【string.h】之 strrep_(char *src, char* oldStr, char * newStr)
- c语言库函数【string.h】之strcpy_(char * dst,const char * src)
- c语言库函数【string.h】之strncpy_(char* dst,const char* src,int count)
- c语言库函数【string.h】之strcat_(char *dst, char *src)
- c语言库函数【string.h】之 substr_(char *dest, const char* src, unsigned int start, unsigned int len)
- c语言库函数【string.h】之strlen_(const char * str)
- c语言库函数【string.h】之strchr_(char *str, char c)
- c语言库函数【string.h】之strstr_(char *s1, char *s2)
- c语言库函数【string.h】strcmp_(const char * str1,const char * str2)
- C语言 实现char * my_strcat(char * dest,char *src)函数
- 【C语言】实现char * my_strcat(char * dest,char *src)函数
- C语言库函数之 int vsnprintf(char *str, size_t size, const char *format, va_list ap);
- C语言实现字符串拷贝函数char *strcpy(char *dest, const char *src)
- c语言实现 char * my_strcat(char * dest,char *src)函数 追加字符串
- C++:string转char*
- C++string与char*
- 【c++】string转char*
- char* m_strcat(char* dst, char* src);
- 是时候出去闯闯了
- 在VC++中使用MASM-构建32位程序的必须配置
- c语言库函数【string.h】之strstr_(char *s1, char *s2)
- document.my.elements[0].value=this.value的意义
- new rap version
- c语言库函数【string.h】之 strrep_(char *src, char* oldStr, char * newStr)
- 终于用到了fflush()
- IIS与asp.net的配置
- c++成员函数指针详解
- Java 基本介绍
- SSH项目中的问题
- JDBC常见问题
- image$ro$$limit
- c语言库函数【string.h】之 substr_(char *dest, const char* src, unsigned int start, unsigned int len)