首页 > 代码库 > C 语言实现字符串替换

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