?? zasmchar.cpp
字號:
///////////////////////////////////////////////////////////////
// 字符集合類 (By Dwing)
///////////////////////////////////////////////////////////////
#include "zAsmchar.h"
///////////////////////////////////////////////////////////////
zAsmchar::zAsmchar(int vsize)
{
if(!vsize) vsize=64;
size=vsize;
num=0;
data=new char[size];
}
///////////////////////////////////////////////////////////////
int zAsmchar::add(char vc)//成功加入返回0
{
long i;
for(i=0;i<num;i++)
if(data[i]==vc) return 1;
if(num==size) return -1;
data[num++]=vc;
return 0;
}
///////////////////////////////////////////////////////////////
int zAsmchar::del(char vc)
{
long i;
for(i=0;i<num;i++)
if(data[i]==vc)
{
for(num--;i<num;i++)
data[i]=data[i+1];
return 0;
}
return 1;
}
///////////////////////////////////////////////////////////////
long zAsmchar::find(char vc)
{
long i;
for(i=0;i<num;i++)
if(data[i]==vc) return i;
return -1;
}
///////////////////////////////////////////////////////////////
int zAsmchar::copy(zAsmchar &vac)
{
if(size!=vac.getsize())
{
size=vac.getsize();
if(data) delete []data;
data=new char[size];
if(!data) return -100;
}
num=vac.getnum();
memcpy(data,vac.getdata(),num);
return 0;
}
///////////////////////////////////////////////////////////////
void zAsmchar::and(zAsmchar &vac)
{
long i;
for(i=0;i<num;i++)
if(vac.find(data[i])<0)
{
del(data[i]);i--;
}
}
///////////////////////////////////////////////////////////////
int zAsmchar::or(zAsmchar &vac)//有元素加入則返回0
{
long i;
int r,rr=1;
for(i=0;i<vac.getnum();i++)
{
r=add(vac.getdata()[i]);
if(r==-1) return -1;
if(r==0) rr=0;
}
return rr;
}
///////////////////////////////////////////////////////////////
void zAsmchar::cut(zAsmchar &vac)
{
long i;
for(i=0;i<vac.getnum();i++)
del(vac.getdata()[i]);
}
///////////////////////////////////////////////////////////////
void zAsmchar::print(char *buf)
{
*buf++='{';
long i;
for(i=0;i<num;i++)
{
*buf++=data[i];
if(num-i>1) *buf++=',';
}
*buf++='}';
*buf=0;
}
///////////////////////////////////////////////////////////////
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -