C语言字符串替换函数(strrpl)

来源:互联网 发布:java excel报表工具 编辑:程序博客网 时间:2024/05/16 15:14

http://blog.csdn.net/sunnysab/article/details/24379989

  1. // 参数说明:  
  2. // in, 源字符串  
  3. // out, 存放最后结果的字符串  
  4. // outlen,out最大的大小  
  5. // src,要替换的字符串  
  6. // dst,替换成什么字符串  
  7. char *strrpl(char *in, char *out, int outlen, const char *src, char *dst)  
  8. {  
  9.     char *p = in;  
  10.     unsigned int  len = outlen - 1;  
  11.   
  12.     // 这几段检查参数合法性  
  13.     if((NULL == src) || (NULL == dst) || (NULL == in) || (NULL == out))  
  14.     {  
  15.         return NULL;  
  16.     }  
  17.     if((strcmp(in, "") == 0) || (strcmp(src, "") == 0))  
  18.     {  
  19.         return NULL;  
  20.     }  
  21.     if(outlen <= 0)  
  22.     {  
  23.         return NULL;  
  24.     }  
  25.   
  26.     while((*p != '\0') && (len > 0))  
  27.     {  
  28.         if(strncmp(p, src, strlen(src)) != 0)  
  29.         {  
  30.             int n = strlen(out);  
  31.   
  32.             out[n] = *p;  
  33.             out[n + 1] = '\0';  
  34.   
  35.             p++;  
  36.             len--;  
  37.         }  
  38.         else  
  39.         {  
  40.             strcat_s(out, outlen, dst);  
  41.             p += strlen(src);  
  42.             len -= strlen(dst);  
  43.         }  
  44.     }  
  45.   
  46.     return out;  
  47. }  

0 0
原创粉丝点击