字符串查找并替换

#include 
#include 

static char str[100];

char *fun(char *src,char *des,char *mystr)
{
    int a,b,c,d,e,f,i;
    char *p;

    a = strlen(src);//替换前总长度
    b = strlen(des);//要被替换的长度
    c = strlen(mystr);//替换的长度
    p = strstr(src,des);
    d =  a - b + c;//替换后的长度
    if(p != NULL){
        bzero(str,100);
        e = p - src;//第一部分的长度
        f = a - b - e;//第三部分的长度
        for(i = 0;i < e;i++)//第一部分复制
        str[i] = *(src + i);

        for(i = 0;i < c;i++)//第二部分复制
        str[i+e] = *(mystr + i);

        for(i = 0;i < f;i++)//第三部分复制
        str[i+e+c] = *(src + e + b + i);

        str[d] = '\0';
        char p[100];
        strcpy(p,str);
        return fun(p,des,mystr);
    }else
    return str;
}
int main(int argc,char **argv)
{   
    if(argc < 4){
        printf("请输入目标字符串,被替换的字符串,替换的字符串\n");
        return -1;
    }
    if(strstr(argv[1],argv[2]) == NULL)
    {
        printf("没有你要替换的字符串\n");
        return -1;
    }
    char p[100];
    strcpy(p,fun(argv[1],argv[2],argv[3]));

    printf("%s\n",str);

    return 0;
}

你可能感兴趣的:(C)