C trim replace函数

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <malloc.h> 
/***************************** 
 * 去掉字符串两头的空格,\t,\r,\n字符 
 *  
 * 对输入的字符指针做修改 
 * **************************/ 
char *trim(char *); 
/****************************** 
 * 字符串替换 
 *  
 * 把原始字符串中的某个字符串换成另一个字符串同时 
 * 把分配内存的指针指向输出字符串。 
 * 返回 替换 的次数如果大于0,应该调用free()回收内存 
 * ****************************/ 
int str_replace(char **,const char*,const char*,const char*); 
char *trim(str) 
char *str; 
{ 
 char *s; 
 char *e; 
 if(str==NULL)return str; 
 s=str; 
//还是用到strlen了. 
 e=&str[strlen(str)-1];         
 for(;(*s==' '||*s=='\n'||*s=='\t'||*s=='\r');s++); 
 for(;(*e==' '||*e=='\n'||*e=='\t'||*e=='\r');e--); 
 e++; 
 *e='\0'; 
 return s;         
} 
int str_replace(outStr,source,oldStr,newStr) 
char **outStr; 
const char *source; 
const char *oldStr; 
const char *newStr; 
{ 
        int s_len,o_len,n_len; 
        char *p_str=NULL; 
        char *p_tmp=NULL; 
        char *p_out=NULL; 
        int count=0; 
        *outStr=NULL; 
        if(source==NULL||oldStr==NULL||newStr==NULL)return 0; 
        s_len=strlen(source); 
        o_len=strlen(oldStr); 
        n_len=strlen(newStr); 
        //分配新以保证可以容纳替换后的新字符串 
        p_out=(char *)malloc((s_len+(s_len/o_len)*(n_len))); 
        if(NULL==p_out) 
          return 0; 
        //分配一个临时空间 
        p_tmp=(char *)malloc(s_len); 
        if(NULL==p_tmp) 
        { 
           if(p_out) 
                   free(p_out); 
          return 0; 
        } 
         memset(p_out,0,sizeof(p_out)); 
     while((p_str=strstr(source,oldStr))) 
     { 
             memset(p_tmp,0,s_len); 
        strncpy(p_tmp,source,p_str-source); 
        strcat(p_out,p_tmp); 
        strcat(p_out,newStr); 
        source=p_str+o_len; 
        count++; 
     } 
     if(count==0){ 
       free(p_out); 
       *outStr=NULL;  
     }else{ 
       strcat(p_out,source); 
       *outStr=p_out; 
     } 
    free(p_tmp); 
   return count;         
} 
int main() 
{ 
        char str[51]; 
        char *ret_str; 
        char *out_str; 
        int ret=0; 
        memset(str,0x0,sizeof(str)); 
        strcpy(str,"\n \t  hello,world! ") ; 
        printf("str [%s]\n",str); 
   ret_str=trim(str); 
   printf("ret_str [%s]\n",ret_str); 
   ret = str_replace(&out_str,"A$B$C$D$E$F$","$","[YOUKOUKAOKAOIII]"); 
   if(out_str) 
   { 
            printf("out_str : %s\n",out_str); 
     free(out_str); 
   } 
   printf("Compiled on %s at %s\n",__DATE__,__TIME__); 
   printf("Compiled file %s,line number : %d\n",__FILE__,__LINE__); 
  return 0;         
}

Mail中的骗子邮件

我只截图,不说话,大家就能明白了!
收件箱:

我知道是骗子,但是想看看骗子的手段,输入那个验证码.

胆子够大的了~~由于ff浏览器的问题,他那个脚本没有被执行,索性我就没有继续看下去。

那个域名(axno.cn)是一个frame,真正的地址是:

http://525176.gz.6666c.com/1588/9.htm

标题竟然是:中国雅虎通指定活动网~

里面的页面基本上是按照yahoo的风格或者说是抄袭过来的,图片都变形了。
看图。~~


 


没有继续测试下去,不知道骗子想在哪个环节骗用户上当。

Update:
刚才又收到一模一样的信,正好有点反困,一路跟着下去看看。

这次我查看html的代码,后来跟到这样的一个地址:

http://525176.gz.6666c.com/1588/t2.htm

点确认,显示这个表单

如果你输入了你的信息,那你可能会收到骗子打过来的电话,或者发过来的短信等等。千万别填写~:)

到yahoo公司的网站上看看提示信息:

http://surveylink.yahoo.com/wix/p3207157.aspx

亲爱的雅虎用户:
近期发现有人假冒我公司中国雅虎产品,频繁给网友发布虚假信息并诱导网友向其帐户汇款,严重侵害用户的权益。
如果您发现不良信息,请填写以下表格向我们举报!

在此特别提醒:请网友们对于不明“中奖”信息不要给予理睬,发现此事,请立即反馈给我们,中国雅虎会对此事做相应处理!

看来已经有很多用户收到类似的信息了。

我们的功夫网和谐了很多本不该和谐的网站(注1),但是像这些该和谐的网站是不是应该早点和谐了啊!!
注1:如Google的某些应用都被和谐过,甚至SF.Net/Resin/Apache都被和谐过。。唉。