博文

如何判断字符串中的字符是汉字.(2005-10-12 20:48:00)

摘要: 如何判断字符串中的字符是汉字(或全角字符)? [所有相关帖子]BOOL isChineseChar(const char ch){    if( ch & 0x08 )    {        // ch 为汉字或全角字符        return TRUE;    }    return FALSE;}链接:http://www.vckbase.com/bbs/prime/viewprime.asp?id=495......

阅读全文(4759) | 评论:0

论坛灌水机(2005-09-27 17:58:00)

摘要:一、“灌水机”简介:     在论坛里面大量的贴出没有任何意义的文章,这种做法在网络上叫做“灌水”,实际上这是一种信息垃圾,大量的垃圾发送到论坛上面就形成了信息炸弹,所以灌水机具有一定的攻击性,它的基本编程思路和上面的内容类似,是一种演变出来的工具。不过于上面的漏洞扫描器不同的是:灌水机需要使用POST方法、而不是GET方法向服务器发送请求。     有关POST的定义如下:     当浏览器将数据从一个填写表单传给服务器时,发生POST操作。对于POST,QUERY一STRING可能为空或不空,这有赖于服务器。如果有信息,则其如GET的情况一样被格式化和传递。     来自POST查询的数据使用STDIN从服务器传到脚本。由于STDIN是一个源,脚本需要知道有多少有效数据。于是服务器还提供了另一个变量,CONTENT_LENGTH,以指出到来数据的字节数。而POST的数据格式为: variable1=value1&variable2=value2&etc     你的程序必须检查REQUEST_METHOD环境变量以知道是否要读取STDIN。CONTENT_LENGTH变量一般只在REOUEST_METHOD为POST时有用。     当脚本被服务器引发时,服务器常常以两种途径之一向脚本传递信息:GET或POST。这两种方法被称为请求方法。所使用的请求方法是通过环境变量传给脚本,该环境变量叫作REQUEST_METHOD(还定义了另外两种请求方法一HEAD和PUT)。     二、灌水机源代码:     利用POST制作灌水机必须要先了解论坛的CGI应该获得一个什么样的string,这要依靠sniffer或者直接使用cgi编写拦截string流的小程序,不过因为POST的格式非常简单,所以经过简单的推测就可以获得它的具体形式,例如对某个论坛我使用的灌水机源代码如下: /********************************************/ /* 灌水机 源代码 */ /* PostForu......

阅读全文(3559) | 评论:0

单纯形法(最终版本)(2005-09-24 16:05:00)

摘要:#include<iomanip.h> #include <fstream.h>ifstream fin("a.txt");ofstream fout("b.txt");#define Min -99999#define Max 99999int main(){float a[100][100];//方程的系数float check[100];//检验数float Csum;//Cj-Zj的和float z[100];//目标函数int m,n;//分别为变量数和方程个数int XB[100];//基变量int mark[100];//标记某个基是否是基变量int in,out;//换入和换出基的位置float inN,outN;//换入和换出基的值float result;//最优值int i,j;int sum;int posx,posy;float temp,temp2;fin>>m>>n;for(i=0;i<m;i++) fin>>z[i];for(i=0;i<n;i++)for(j=0;j<=m;j++)fin>>a[i][j];//下面是找基的过程for(i=0;i<100;i++)XB[i]=mark[i]=0;//先来找容易看出来的基for(i=0;i<m;i++){posy=0;sum=0;for(j=0;j<n;j++)if(a[j][i]!=0){if(sum==0) posy=j;sum++;}if(sum==1 && mark[i]==0) //第i个变量只有第j个方程有系数且不是基{temp=a[posy][i];for(j=0;j<=m;j++)//把它化为基a[posy][j]/=temp;XB[posy]=i;mark[i]=1;}} posy=0;while(posy<n){if(XB[posy]==0)//表示第posy个方程还没有找出基{posx=0;while(mark[posx]==1 || a[posy][posx]==0)//对应的变量是基或等于0,换下一个变量posx++;temp=a[posy][posx];for(i=0;i<=m;i++)//化为1a[posy][i]......

阅读全文(6211) | 评论:6

2阶段单纯形法(2005-09-21 15:26:00)

摘要:#include<iomanip.h>#include <fstream.h>#define Min -99999#define Max 99999int main(){ float a[100][100],b[100],z[100],c[100]; int XB[100]; int m,n; int in,out; float inN,outN; float sum; int pos; float temp,temp2,temp3; int i,j; float result; ifstream fin("in.txt"); ofstream fout("out.txt"); fin>>m>>n; for(i=0;i<m;i++)  fin>>z[i]; for(i=0;i<n;i++) {  for(j=0;j<m;j++)   fin>>a[i][j];  fin>>b[i]; } for(i=0;i<n;i++)  XB[i]=i+m; for(i=0;i<n;i++) for(j=0;j<n;j++)  a[i][m+j]=0; for(i=0;i<n;i++)  a[i][m+i]=1; //第一阶段 for(i=0;i<m;i++)  c[i]=0; for(i=0;i<n;i++)  c[i+m]=-1; for(i=0;i<m+n;i++) {  sum=0.0;  for(j=0;j<n;j++)   sum-=a[j][i];  a[n][i]=c[i]-sum;&n......

阅读全文(6075) | 评论:2

一个垃圾问的问题.(2005-09-18 16:16:00)

摘要:#include <iostream.h>#include <fstream.h>#include <string.h>int main(){char a[100][30],b[100][30];int i,j;int T1,T2;int flag1[10],flag2[10];ifstream f1("a.txt");ifstream f2("b.txt");for(i=0;i<10;i++)flag1[i]=flag2[i]=0;for(i=0;i<100;i++){ f1>>a[i]; if(strcmp(a[i],"0")==0) {  T1=i;  break; }}for(i=0;i<100;i++){ if(f2>>b[i]) ; if(strcmp(b[i],"0")==0) {  T2=i;  break; }}f1.close();f2.close();cout<<"a.txt";for(i=5;i<=20;i++)cout<<" ";cout<<"   ";cout<<"b.txt";for(i=5;i<=20;i++)cout<<" ";cout<<"type\n";for(i=0;i<=22;i++)cout<<"-";cout<<"+";for(i=0;i<=21;i++)cout<<"-";cout<<"+----";cout<<endl;for(i=0;i<T1;i++){ int flag=0,pos; for(j=0;j<T2;j++) if(strcmp(a[i],b[j])==0) {  flag=1;  pos=j;  break; } if(flag==1) {flag1[i]=1;fl......

阅读全文(6109) | 评论:0

字符统计(2005-09-10 10:43:00)

摘要:#include <stdio.h> int count(char *s,int *t) {     char *p=s;     while(*p!='\0')     {         if(*p>='a' && *p<='z' || *p>='A' && *p<='Z')         t[0]++;         else if(*p>='0' && *p<='9')         t[1]++;         else if(*p==' ')         t[2]++;         else         t[3]++;         p++;     } } int main() {     int i,t[4];     char s[100];     while(gets(s))     {     for(i=0;i<4;i++)    ......

阅读全文(2948) | 评论:0

求二进制转换成十进制的代码(2005-09-10 10:25:00)

摘要:#include <iostream.h> long fun(char *s) { long a=0; int pos=0; while(s[pos]!='\0') { a=a*2+s[pos]-'0'; pos++; } return a; } int main() {     char s[20];     while(cin>>s)     cout<<fun(s)<<endl; }     ......

阅读全文(2377) | 评论:0

时间(2005-09-10 10:16:00)

摘要:#include <iostream.h> #include <string.h> int main() {     char s[20];     while(cin>>s)     {         int a=0,b=0,c=0;         int pos=0;         while(s[pos]!=':')         {             a=a*10+s[pos]-'0';             pos++;         }         pos++;         while(s[pos]!=':')         {             b=b*10+s[pos]-'0';             pos++;     ......

阅读全文(2591) | 评论:0

stu(2005-09-10 09:17:00)

摘要:#include <stdio.h> ///#include <malloc.h> struct student {     char name[20];     int score; }; struct student *a,*b; //stu *a,*b; int n=2; int total=0; a=(struct student *)malloc(n*sizeof(stu)); void insert() {     int i;     if(total>=n)     {         b=(struct student *)malloc(n*sizeof(stu));         free(a);         n=n*2;         a=(struct student *)malloc(n*sizeof(stu));         for(i=0;i<n/2;i++)             a[i]=b[i];         free(b);     }     scanf("%s%d",a[total].name,&a[total].score);     to......

阅读全文(2215) | 评论:0

分解因式.(2005-09-08 19:11:00)

摘要:#include <iostream.h> int fun(long a) { long i,b=a; cout<<a<<"=1"; for(i=2;i<=b;i++) while(b%i==0) { cout<<"*"<<i; b=b/i; } cout<<endl; return 0; } int main(int argc, char* argv[]) {     fun(12);     fun(82);     return 0; }......

阅读全文(2650) | 评论:3