/// <summary>
/// 对字符操作的类
/// </summary>
class MyByte
{
public:
MyByte();//构造函数
~MyByte();//析构函数
void Assign(char* ,int);//赋值
void Add(char* ,int);//添加
void Add(char);
void Add(int ,char)
void Add(int ,char* ,int)
int Remove(int ,int);//移除
void Clear();//清空
bool Find(int ,char* ,int);//查找
bool Find(int ,char);
int GetLen();//获取长度
char* GetData();//获取数据
private:
char *data;
int len;}
public MyByte::MyByte()
{
data = 0;
len = 0;
}
public MyByte::~MyByte(){
delete[] data;
len = 0;
}
/// <summary>
/// 给成员变量赋值
/// </summary>
{
if(data)
{
delete[] data;
len = 0;
data = new char[length];
len = length;
memcpy(data,p,length);}
/// <summary>
/// 在字符数组后面添加一个字符
/// </summary>
{
len++;
char *t = new char[len];
if(data){
memcpy(t,data,len-1);}
t[len-1] = ch;delete[] data;
data=t;}
/// <summary>
/// 在字符数组后面添加长度为length的一串字符
/// </summary>
{
len+=length;char *t = new char[len];
if(data){
memcpy(t,data,len-length);}
memcpy(t+len-length,s,length);delete[] data;
data=t;}
/// <summary>
///从start起始位除添加一个字符
/// </summary>
void MyByte::Add(int start, char ch)
{len++;
char *t = new char[len]; t[start] = ch;
int j=0;
for(int i=0;i<len;i++){
if(i==start){
t[i+1] = data[j++];}
else
{t[i] = data[j++];
}
} delet[] data;
}
/// <summary>
/// 从start起始位处添加一串长度为length的字符
/// </summary>
{
len+=length;char *t = new char[len];
int j=0;
for(int i=0;i<len;i++){
if(i == start){
memcpy(t+start,str,length);
i += length; }
{
t[i] = data[j++]; }
}
delete[] data;
data = t;}
/// <summary>/// 移除从start位置开始长为length的字符
/// </summary>
int MyByte::Remove(int start, int length)
{
if(start+length>len){
return 0;}
char *t = new char[len-length];
int j=0;for(int i=0;i<len-length;i++)
{if(i<start || i>start+length-1)
t[j++] = data[i];
}delete[] data;
data = t;
len = len-length;return 1;
}
/// <summary>
/// 获取字符
/// </summary>
{
return data;}
/// <summary>
/// 获取长度
/// </summary>
{
return len;}
/// <summary>/// 查找是否存在字符串
/// </summary>
bool MyByte::Find(int start, char* str, int length)
{
if(start + length > len){
return false;}
char *t = d + start;
for(int i=0;i<=len-length;i++){
int flag = 0;for(int j=0;j<length;j++)
{
if(t[i+j]!=str[j]){
flag = 1;break;
}
}if(flag == 0)
{return true;
}
}return false;
}/// <summary>
/// 查找是否存在字符
/// </summary>
bool MyByte::Find(int start, char ch)
{
if(start + 1 > len)
{return false;
}char *t = data + start;
for(int i=0;i<len;i++
{if(t[i] == char)
return true;
return false;
}
/// <summary>
/// 清空字符数组
/// </summary>
{
delete[] data;data = 0;
len = 0;}