Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3404023
  • 博文数量: 754
  • 博客积分: 10132
  • 博客等级: 上将
  • 技术积分: 7780
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-14 23:36
文章分类

全部博文(754)

文章存档

2012年(3)

2011年(39)

2010年(66)

2009年(167)

2008年(479)

我的朋友

分类: LINUX

2008-11-20 16:16:45

  #include    
  #include    
  #include    
   
  char   *   replace(const   char   *   str,   const   char   *   str1,   const   char   *   str2)   {  
          char     *   pstr1,   *   pstr2,   *   pbuf1,   *   pbuf2;  
          char         ch;  
          pbuf1   =   NULL;  
          pbuf2   =   NULL;  
          pstr1   =   strstr(str,   str1);  
          while(pstr1   !=   NULL)   {  
                  ch   =   *pstr1;  
                  *pstr1   =   0;  
                  if(pbuf1   ==   NULL)   {  
                          pbuf1   =   (char   *)malloc(strlen(str)   +   strlen(str2)   +   1);  
                          pbuf1[0]   =   0;  
                  }       else   {  
                          pbuf2   =   (char   *)malloc(strlen(pbuf1)   +   strlen(str)   +   strlen(str2)   +   1);  
                          strcpy(pbuf2,   pbuf1);  
                          free(pbuf1);  
                          pbuf1   =   pbuf2;  
                  }  
                  strcat(pbuf1,   str);  
                  strcat(pbuf1,   str2);  
                  *pstr1   =   ch;  
                  str   =   pstr1   +   strlen(str1);  
                  pstr1   =   strstr(str,   str1);  
          }  
          if(str&&str[0])   {  
                  if(pbuf1   ==   NULL)   {  
                          pbuf1   =   (char   *)malloc(strlen(str)   +   strlen(str2)   +   1);  
                          pbuf1[0]   =   0;  
                  }       else   {  
                          pbuf2   =   (char   *)malloc(strlen(pbuf1)   +   strlen(str)   +   strlen(str2)   +   1);  
                          strcpy(pbuf2,   pbuf1);  
                          free(pbuf1);  
                          pbuf1   =   pbuf2;  
                  }  
                  strcat(pbuf1,   str);  
          }  
          return   pbuf1;  
  }  
   
  int   main(int   argc,   char   **   argv)   {  
          char   *   pstr;  
          if(argc   !=   4)   {  
                  fprintf(stderr,   "Error,   parameter\n");  
                  return   1;  
          }  
          pstr   =   replace(argv[1],   argv[2],   argv[3]);  
          fprintf(stdout,   "replace(\"%s\",   \"%s\",   \"%s\")   =   \"%s\"\n",  
                          argv[1],   argv[2],   argv[3],   pstr);  
          free(pstr);  
          return   0;  
  }  
阅读(1586) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~