Cpp常用方法

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;
}


















世界地图矢量数据可以通过多种网站进行下载。以下是一些提供免费下载世界地图矢量数据的网站: 1. Open Street Map (https://www.openstreetmap.org/): 这个网站可以根据输入的经纬度或手动选定范围来导出目标区域的矢量图。导出的数据格式为osm格式,但只支持矩形范围的地图下载。 2. Geofabrik (http://download.geofabrik.de/): Geofabrik提供按洲际和国家快速下载全国范围的地图数据数据格式支持shape文件格式,包含多个独立图层,如道路、建筑、水域、交通、土地利用分类、自然景观等。数据每天更新一次。 3. bbbike (https://download.bbbike.org/osm/): bbbike提供全球主要的200多个城市的地图数据下载,也可以按照bbox进行下载。该网站还提供全球数据数据格式种类齐全,包括geojson、shp等。 4. GADM (https://gadm.org/index.html): GADM提供按国家或全球下载地图数据的服务。该网站提供多种格式的数据下载。 5. L7 AntV (https://l7.antv.antgroup.com/custom/tools/worldmap): L7 AntV是一个提供标准世界地图矢量数据免费下载的网站。支持多种数据格式下载,包括GeoJSON、KML、JSON、TopJSON、CSV和高清SVG格式等。可以下载中国省、市、县的矢量边界和世界各个国家的矢量边界数据。 以上这些网站都提供了世界地图矢量数据免费下载服务,你可以根据自己的需求选择合适的网站进行下载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值