博文
如何判断字符串中的字符是汉字.(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......
论坛灌水机(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......
单纯形法(最终版本)(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]......
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......
一个垃圾问的问题.(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......
字符统计(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++)
 ......
求二进制转换成十进制的代码(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;
} ......
时间(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++;
......
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......
分解因式.(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;
}......
