📄 mystring.cpp
字号:
#include "link.h"
/***********************************************************************
默认构造函数
***********************************************************************/
CMyString::CMyString()
{
}
/***********************************************************************
默认析构函数
***********************************************************************/
CMyString::~CMyString()
{
}
/***********************************************************************
拷贝函数
***********************************************************************/
CMyString::CMyString(CMyString &str)
{
}
/***********************************************************************
构造函数
***********************************************************************/
CMyString::CMyString(string str)
{
}
/*******************************************************************************/
/*去除左空格 */
/*******************************************************************************/
void CMyString::RemoveLeftBlank(string &str)
{
for(int i=0;i<str.length();i++)
{
if(str[i]==' ')
{
str.erase(0,1);
i--;
}
else
break;
}
}
/*******************************************************************************/
/*去除右空格 */
/*******************************************************************************/
void CMyString::RemoveRightBlank(string &str)
{
for(int i=str.length()-1;i!=0;i--)
{
if(str[i]==' ')
{
str.erase(i,1);
}
else
break;
}
}
/*******************************************************************************/
/*去除中间多余空格 */
/*******************************************************************************/
void CMyString::RemoveMiddleBlank(string &str)
{
int i;
while(1)
{
if(str.find(" ")==string::npos)
break;
i=str.find(" ");
str.replace(i,2," ");
}
}
/*******************************************************************************/
/*去除所有空格 */
/*******************************************************************************/
void CMyString::RemoveAllBlank(string &str)
{
RemoveLeftBlank(str);
RemoveRightBlank(str);
int i;
while(1)
{
if(str.find(" ")==string::npos)
break;
i=str.find(" ");
str.replace(i,1,"");
}
}
/*******************************************************************************/
/*去除左0 */
/*******************************************************************************/
void CMyString::RemoveLeftZero(string &str)
{
for(int i=0;i<str.length();i++)
{
if(str[i]=='0')
{
str.erase(i,1);
i--;
}
else
break;
}
}
/*******************************************************************************/
/*去除多余“\” */
/*******************************************************************************/
void CMyString::RemoveMiddleBias(string &str)
{
int i;
while(1)
{
if(str.rfind("\\\\")==string::npos)
break;
i=str.rfind("\\\\");
str.replace(i,2,"\\");
}
}
/*******************************************************************************/
/*去除多余“/” */
/*******************************************************************************/
void CMyString::RemoveMiddleBackBias(string &str)
{
int i;
while(1)
{
if(str.rfind("//")==string::npos)
break;
i=str.rfind("//");
str.replace(i,2,"/");
}
}
/*******************************************************************************/
/*姓名合法性验证 */
/*******************************************************************************/
bool CMyString::CheckName(string &name)
{
string setName="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' '";
RemoveLeftBlank(name);
RemoveRightBlank(name);
int len;
len=name.length();
if(len<=0)
{
CMessageBox::ShowMessage("Name cannot be null!");
return false;
}
if(len>20)
{
CMessageBox::ShowMessage("Name length is too long!");
return false;
}
int first;
first=name.find_first_not_of(setName);
if(first!=string::npos)
{
CMessageBox::ShowMessage("Name must be letters or space!");
return false;
}
RemoveMiddleBlank(name);
return true;
}
/*******************************************************************************/
/*性别合法性验证 */
/*******************************************************************************/
bool CMyString::CheckSex(string &sex)
{
RemoveLeftBlank(sex);
RemoveRightBlank(sex);
int len=sex.length();
if(len<=0)
{
CMessageBox::ShowMessage("Input cannot be null!");
return false;
}
if(sex!="f"&&sex!="F"&&sex!="M"&&sex!="m")
{
CMessageBox::ShowMessage("Input must be M or F!");
return false;
}
return true;
}
/*******************************************************************************/
/*电话合法性验证 */
/*******************************************************************************/
bool CMyString::CheckMobile(string &mobile)
{
string setMobile="0123456789";
RemoveLeftBlank(mobile);
RemoveRightBlank(mobile);
int len=mobile.length();
if (len==0)
{
mobile="Null";
return true;
}
int first;
first=mobile.find_first_not_of(setMobile);
if (first!=string::npos)
{
CMessageBox::ShowMessage("Mobile must be digit[0-9] !!");
return false;
}
if (len>12||len<11)
{
CMessageBox::ShowMessage("Mobile number must be 11-12 !");
return false;
}
if (mobile[0]=='0')
{
if (len!=12)
{
CMessageBox::ShowMessage("Mobile number begin as 0 must be 12 !exp:013512345678");
return false;
}
}
else
{
if (len!=11)
{
CMessageBox::ShowMessage("Mobile number not begin as 0 must be 11 !exp:13512345678");
return false;
}
}
return true;
}
/************************************************************************/
/* 日期合法性验证 */
/************************************************************************/
bool CMyString::CheckDate(string &date)
{
string setDate="0123456789'-'";
RemoveLeftBlank(date);
RemoveRightBlank(date);
int len=date.length();
if (len==0)
{
date="Null";
return true;
}
if (len<8)
{
CMessageBox::ShowMessage("Date input illegal,please input again ! exp:2000-12-11");
return false;
}
int first;
first=date.find_first_not_of(setDate);
if (first!=string::npos)
{
CMessageBox::ShowMessage("Date input illegal,please input again ! exp:2000-12-11");
return false;
}
char temp[10];
int tempdate[3]={0};
for (int i=0,j=0,k=0;i<len;i++)
{
if (date[i]=='-')//2000-2-2
{
temp[j]='\0';
tempdate[k]=atoi(temp);
k++;
j=0;
continue;
}
else if (date[i]!='-')
{
temp[j]=date[i];
j++;
if (i==len-1)
{
temp[j]='\0';
tempdate[k]=atoi(temp);
}
continue;
}
}
if (tempdate[0]>2010||tempdate[0]<1900)
{
CMessageBox::ShowMessage("Date year must be between 1900-1-1 to 2010-12-31 !");
return false;
}
if (tempdate[1]>12||tempdate[1]<1)
{
CMessageBox::ShowMessage("Date input illegal ! exp:2000-12-11");
return false;
}
if ((tempdate[0]%4==0 && tempdate[0]%100!=0)||tempdate[0]%400==0)//如果是闰年
{
if (tempdate[1]==2)//如果是2月
{
if(tempdate[2]>29)
{
CMessageBox::ShowMessage("Date input illegal ! exp:2000-2-29");
return false;
}
}
}
else
{
if (tempdate[1]==2)//如果是2月
{
if(tempdate[2]>28)
{
CMessageBox::ShowMessage("Date input illegal ! exp:2001-2-28");
return false;
}
}
}
if (tempdate[1]==1 ||tempdate[1]==3 ||tempdate[1]==5 ||tempdate[1]==7 ||tempdate[1]==8 ||tempdate[1]==10 ||tempdate[1]==12)
{
if (tempdate[2]>31)
{
CMessageBox::ShowMessage("Date input illegal ! exp:2000-3-31");
return false;
}
}
else
{
if (tempdate[2]>30)
{
CMessageBox::ShowMessage("Date input illegal ! exp:2000-6-30");
return false;
}
}
return true;
}
/*******************************************************************************/
/*编号id合法性验证 */
/*******************************************************************************/
bool CMyString::CheckID(string &id)
{
RemoveLeftBlank(id);
RemoveRightBlank(id);
int len=id.length();
if(len==0)
{
CMessageBox::ShowMessage("Input cannot be null !");
return false;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -