博文

如何判断字符串中的字符是汉字.(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
......

阅读全文(4522) | 评论: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的格式非常简单,所以经过简单的推测就可以获得它的具体形式,例如对某个论坛我使用的灌水机源代码如下: /***********************************......

阅读全文(3319) | 评论: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 99999
int 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;
}......

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

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

摘要:#include<iomanip.h>
#include <fstream.h>
#define Min -99999
#define Max 99999
int 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......

阅读全文(5848) | 评论: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......

阅读全文(2643) | 评论: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))
......

阅读全文(2738) | 评论: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;
}     ......

阅读全文(2149) | 评论: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';
     &......

阅读全文(2366) | 评论: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);
    }
 &nb......

阅读全文(2056) | 评论: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;
}......

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