#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
int replace_sub_str(const char *str,const char *substr,char *repstr,char *result)
{
const char *p,*q,*re,*temp1;
//char *q;
char *temp,*t;
int n,count = 0,m,i;
p = str;
q = substr;
re = repstr;
n = strlen(q);
m = strlen(re);
temp = (char*)malloc(n+1);
memset(temp,0x00,n+1);
t = result;
while(*p)
{
memcpy(temp,p,n);
if(strcmp(temp,q)==0)
{
count++;
memset(temp,0x00,n+1);
p = p + n;
temp1 = repstr;
for(i = 0;i<m;i++)
{
*t = *temp1;
t++;
temp1++;
}
}
else
{
*t = *p;
p++;
t++;
memset(temp,0x00,n+1);
}
}
free(temp);
return count;
}
int main()
{
char s[100] = {'\0'};
int num = replace_sub_str("123abc12de234fg1hi34j123k","123","4",s);
printf("The number of sub_str is %d\r\n",num);
printf("The result string is %s\r\n",s);
}
替换子字符串(将字符串中的某个子字符串替换为给定的字符串)
最新推荐文章于 2025-05-23 13:30:20 发布