C 语言实现字符串替换

Posted 你且浅笑相安

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言实现字符串替换相关的知识,希望对你有一定的参考价值。

void replaceFirst(char *str1,char *str2,char *str3)  
{  
    char str4[strlen(str1)+1];  
    char *p;  
    strcpy(str4,str1);  
    if((p=strstr(str1,str2))!=NULL)/*p指向str2在str1中第一次出现的位置*/  
    {  
        while(str1!=p&&str1!=NULL)/*将str1指针移动到p的位置*/  
        {  
            str1++;  
        }  
        str1[0]=\0;/*将str1指针指向的值变成/0,以此来截断str1,舍弃str2及以后的内容,只保留str2以前的内容*/  
        strcat(str1,str3);/*在str1后拼接上str3,组成新str1*/  
        strcat(str1,strstr(str4,str2)+strlen(str2));/*strstr(str4,str2)是指向str2及以后的内容(包括str2),strstr(str4,str2)+strlen(str2)就是将指针向前移动strlen(str2)位,跳过str2*/  
    }  
}  
/*将str1出现的所有的str2都替换为str3*/  
void str_replace(char *str1,char *str2,char *str3)  
{  
//如果传入的参数 str2 和str3相同    直接退出  避免while死循环
    if(!strcmp(str2,str3)){
        return ;
    }
    while(strstr(str1,str2)!=NULL)  
    {  
        replaceFirst(str1,str2,str3);  
    }  
}  

 

以上是关于C 语言实现字符串替换的主要内容,如果未能解决你的问题,请参考以下文章

c语言编程替换文件中字符串

C语言中如何用一个字符串替换一个主串中的子串

C语言文件中字符串的查找与替换

C语言如何实现取字符串的一部分?

C语言问题 字符(串)替换

C 语言实现字符串替换