1.判断字符串是不是汉字
//汉字的string长度等于3,"~"是 ASCII 的最后一位,比它还大的是其他类型编码。
//分别取出组成一个汉字的三个字符和 “~”比较,都大于则表示有可能是汉字
//遇到特殊字符也一样会判断是汉字的 judgeChina("åß∂");
bool judgeChina(std::string pCon)
{
cout<< "length: " << pCon.length()<<endl;
if(pCon.length()<3)
return false;
if(pCon.substr(0,1).compare("~")>0 && pCon.substr(1,1).compare("~")>0
&& pCon.substr(2,1).compare("~")>0 )
{
cout<< "China" <<endl;
return true;
}
return false;
}
2.判断是否是数字
//取出的是一个 char ,根据 ASSCII 表比较字符大小
bool judgeNum(std::string strNum)
{
for(int i=0; i<strNum.length(); i++)
{
if(strNum.at(i)>'9' || strNum.at(i)<'0')
{
return false;
}
}
return true;
}
3.string检查一个字符串只能由字母和数字组成
bool checkChar(string str) //true标示 只由字母和数字组成
{
for(int i=0; i<str.length(); i++)
{
if((str.substr(i,1)).compare("0")<0 || (str.substr(i,1)).compare("z")>0) //比0小比z大的不行
return false;
if((str.substr(i,1)).compare("9")>0 && (str.substr(i,1)).compare("A")<0) //9~A之间的不行
return false;
if((str.substr(i,1)).compare("Z")>0 && (str.substr(i,1)).compare("a")<0) //Z~a之间的不行
return false;
}
return true;
}
4.检查email格式
//true标示是
bool checkMail(string mail)
{
int tJudge = 0;
if((mail.find("@")<2) || (mail.find(".")-mail.find("@")<2)) //w@ @q.com =1
return false;
for(int i=0; i<mail.length(); i++)
{
if((mail.substr(i,1)).compare("@")==0 || (mail.substr(i,1)).compare(".")==0)
{
tJudge++;
continue;
}
//只能是字母或数字
//比0小比z大的不行
if((mail.substr(i,1)).compare("0")<0 || (mail.substr(i,1)).compare("z")>0)
return false;
if((mail.substr(i,1)).compare("9")>0 && (mail.substr(i,1)).compare("A")<0) //9~A之间的不行
return false;
if((mail.substr(i,1)).compare("Z")>0 && (mail.substr(i,1)).compare("a")<0) //Z~a之间的不行
return false;
}
if(tJudge != 2)
return false;
return true;
}
5.检查是不是电话号码
//true标示是
bool checkPhone(string phone)
{
if(phone.length() !=11) //不是11位
return false;
for(int i=0; i<phone.length(); i++)
{
if((phone.substr(0,1)).compare("0") ==0) //0开头
return false;
if((phone.substr(i,1)).compare("0")<0 || (phone.substr(i,1)).compare("9")>0) /*比0小比9大*/
{
return false;
}
}
return true;
}
6.string和int类型相互转换
int stringToInt(string str, int posNum)
{
int aa;
char bu[7];
strcpy(bu,str.c_str());
sscanf(bu,"%d",&aa);
return aa;
}
string intToString(int p , int posNum)
{
char buf1[8];
sprintf(buf1, "%d", p);
string b1 = buf1;
return b1;
}