码迷,mamicode.com
首页 > 编程语言 > 详细

C 语言实现字符串替换

时间:2016-10-12 14:12:03      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

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 语言实现字符串替换

标签:

原文地址:http://www.cnblogs.com/dpf-10/p/5952267.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!