最近做注册窗口身份证+姓名认证时,有个需求:姓名必须是符合百家姓的

据说有现成的公安系统可以使用,但是是按次收费的,果断放弃此方案,

网上找了一圈没有,

有人说用正则,正则最多能判断是不是中文吧,还能判断出“秀”、“欧冠”是不是属于百家姓?感觉也不靠谱

没办法,干脆自己写吧,全是体力活,希望能帮助到需要的人! 有问题欢迎指出,一起探讨!

// .h
BOOL        IsInBookOfFamilyNames(LPCTSTR szString);    // 百家姓          
// .cpp
const int FAMILY_NAMES_SINGLE_CNT = 444;  // 单姓
const int FAMILY_NAMES_CNT = 504;        // 百家姓
TCHAR g_szBookOfFamilyNames[FAMILY_NAMES_CNT][5] = {                                    _T("赵"), _T("钱"), _T("孙"), _T("李"), _T("周"), _T("吴"), _T("郑"), _T("王"), _T("冯"), _T("陈"),       _T("褚"), _T("卫"), _T("蒋"), _T("沈"), _T("韩"), _T("杨"), _T("朱"), _T("秦"), _T("尤"), _T("许"),_T("何"), _T("吕"), _T("施"), _T("张"), _T("孔"), _T("曹"), _T("严"), _T("华"), _T("金"), _T("魏"),  _T("陶"), _T("姜"), _T("戚"), _T("谢"), _T("邹"), _T("喻"), _T("柏"), _T("水"), _T("窦"), _T("章"),_T("云"), _T("苏"), _T("潘"), _T("葛"), _T("奚"), _T("范"), _T("彭"), _T("郎"), _T("鲁"), _T("韦"),_T("昌"), _T("马"), _T("苗"), _T("凤"), _T("花"), _T("方"), _T("俞"), _T("任"), _T("袁"), _T("柳"),_T("酆"), _T("鲍"), _T("史"), _T("贺"), _T("唐"), _T("费"), _T("廉"), _T("岑"), _T("薛"), _T("雷"),    _T("倪"), _T("汤"), _T("滕"), _T("殷"), _T("罗"), _T("毕"), _T("郝"), _T("邬"), _T("安"), _T("常"),_T("乐"), _T("于"), _T("时"), _T("傅"), _T("皮"), _T("卞"), _T("齐"), _T("康"), _T("伍"), _T("余"),_T("元"), _T("卜"), _T("顾"), _T("孟"), _T("平"), _T("黄"), _T("和"), _T("穆"), _T("萧"), _T("尹"),_T("姚"), _T("邵"), _T("湛"), _T("汪"), _T("祁"), _T("毛"), _T("禹"), _T("狄"), _T("米"), _T("贝"),    _T("明"), _T("臧"), _T("计"), _T("伏"), _T("成"), _T("戴"), _T("谈"), _T("宋"), _T("茅"), _T("庞"),_T("熊"), _T("纪"), _T("舒"), _T("屈"), _T("项"), _T("祝"), _T("董"), _T("粱"), _T("杜"), _T("阮"),_T("蓝"), _T("闵"), _T("席"), _T("季"), _T("麻"), _T("强"), _T("贾"), _T("路"), _T("娄"), _T("危"),_T("江"), _T("童"), _T("颜"), _T("郭"), _T("梅"), _T("盛"), _T("林"), _T("刁"), _T("钟"), _T("徐"),_T("邱"), _T("骆"), _T("高"), _T("夏"), _T("蔡"), _T("田"), _T("樊"), _T("胡"), _T("凌"), _T("霍"),_T("虞"), _T("万"), _T("支"), _T("柯"), _T("昝"), _T("管"), _T("卢"), _T("莫"), _T("经"), _T("房"),_T("裘"), _T("缪"), _T("干"), _T("解"), _T("应"), _T("宗"), _T("丁"), _T("宣"), _T("贲"), _T("邓"),_T("郁"), _T("单"), _T("杭"), _T("洪"), _T("包"), _T("诸"), _T("左"), _T("石"), _T("崔"), _T("吉"),_T("钮"), _T("龚"), _T("程"), _T("嵇"), _T("邢"), _T("滑"), _T("裴"), _T("陆"), _T("荣"), _T("翁"),_T("荀"), _T("羊"), _T("於"), _T("惠"), _T("甄"), _T("麴"), _T("家"), _T("封"), _T("芮"), _T("羿"),_T("储"), _T("靳"), _T("汲"), _T("邴"), _T("糜"), _T("松"), _T("井"), _T("段"), _T("富"), _T("巫"),_T("乌"), _T("焦"), _T("巴"), _T("弓"), _T("牧"), _T("隗"), _T("山"), _T("谷"), _T("车"), _T("侯"),_T("宓"), _T("蓬"), _T("全"), _T("郗"), _T("班"), _T("仰"), _T("秋"), _T("仲"), _T("伊"), _T("宫"),_T("宁"), _T("仇"), _T("栾"), _T("暴"), _T("甘"), _T("钭"), _T("厉"), _T("戎"), _T("祖"), _T("武"),_T("符"), _T("刘"), _T("景"), _T("詹"), _T("束"), _T("龙"), _T("叶"), _T("幸"), _T("司"), _T("韶"),_T("郜"), _T("黎"), _T("蓟"), _T("薄"), _T("印"), _T("宿"), _T("白"), _T("怀"), _T("蒲"), _T("邰"),_T("从"), _T("鄂"), _T("索"), _T("咸"), _T("籍"), _T("赖"), _T("卓"), _T("蔺"), _T("屠"), _T("蒙"),_T("池"), _T("乔"), _T("阴"), _T("欎"), _T("胥"), _T("能"), _T("苍"), _T("双"), _T("闻"), _T("莘"),_T("党"), _T("翟"), _T("谭"), _T("贡"), _T("劳"), _T("逄"), _T("姬"), _T("申"), _T("扶"), _T("堵"),_T("冉"), _T("宰"), _T("郦"), _T("雍"), _T("舄"), _T("璩"), _T("桑"), _T("桂"), _T("濮"), _T("牛"),_T("寿"), _T("通"), _T("边"), _T("扈"), _T("燕"), _T("冀"), _T("郏"), _T("浦"), _T("尚"), _T("农"),_T("温"), _T("别"), _T("庄"), _T("晏"), _T("柴"), _T("瞿"), _T("阎"), _T("充"), _T("慕"), _T("连"),_T("茹"), _T("习"), _T("宦"), _T("艾"), _T("鱼"), _T("容"), _T("向"), _T("古"), _T("易"), _T("慎"),_T("戈"), _T("廖"), _T("庾"), _T("终"), _T("暨"), _T("居"), _T("衡"), _T("步"), _T("都"), _T("耿"),_T("满"), _T("弘"), _T("匡"), _T("国"), _T("文"), _T("寇"), _T("广"), _T("禄"), _T("阙"), _T("东"),_T("殴"), _T("殳"), _T("沃"), _T("利"), _T("蔚"), _T("越"), _T("夔"), _T("隆"), _T("师"), _T("巩"),_T("厍"), _T("聂"), _T("晁"), _T("勾"), _T("敖"), _T("融"), _T("冷"), _T("訾"), _T("辛"), _T("阚"),_T("那"), _T("简"), _T("饶"), _T("空"), _T("曾"), _T("毋"), _T("沙"), _T("乜"), _T("养"), _T("鞠"),_T("须"), _T("丰"), _T("巢"), _T("关"), _T("蒯"), _T("相"), _T("查"), _T("後"), _T("荆"), _T("红"),_T("游"), _T("竺"), _T("权"), _T("逯"), _T("盖"), _T("益"), _T("桓"), _T("公"), _T("墨"), _T("哈"),_T("谯"), _T("笪"), _T("年"), _T("爱"), _T("阳"), _T("佟"), _T("商"), _T("帅"), _T("佘"), _T("佴"),_T("仉"), _T("督"), _T("归"), _T("海"), _T("伯"), _T("赏"), _T("岳"), _T("楚"), _T("缑"), _T("亢"),_T("况"), _T("后"), _T("有"), _T("琴"), _T("言"), _T("福"), _T("晋"), _T("牟"), _T("闫"), _T("法"),_T("汝"), _T("鄢"), _T("涂"), _T("钦"), _T("东郭"), _T("南门"), _T("呼延"), _T("羊舌"), _T("微生"), _T("左丘"),_T("万俟"), _T("司马"), _T("上官"), _T("欧阳"), _T("夏侯"), _T("诸葛"), _T("闻人"), _T("东方"), _T("赫连"), _T("皇甫"),_T("尉迟"), _T("公羊"), _T("澹台"), _T("公冶"), _T("宗政"), _T("濮阳"), _T("东门"), _T("西门"), _T("南宫"), _T("第五"),_T("淳于"), _T("单于"), _T("太叔"), _T("申屠"), _T("公孙"), _T("仲孙"), _T("轩辕"), _T("令狐"), _T("钟离"), _T("宇文"),_T("长孙"), _T("慕容"), _T("鲜于"), _T("闾丘"), _T("司徒"), _T("司空"), _T("亓官"), _T("司寇"), _T("子车"), _T("夹谷"),_T("颛孙"), _T("端木"), _T("巫马"), _T("公西"), _T("漆雕"), _T("乐正"), _T("壤驷"), _T("公良"), _T("拓跋"), _T("梁丘"),_T("宰父"), _T("谷梁"), _T("段干"), _T("百里")};BOOL IsInBookOfFamilyNames(LPCTSTR szString)
{if (!IsStringChinese(szString))  // 是否全中文 参见 本博客上一篇文章return FALSE;CString strName, strName1, strName2;strName.Format(_T("%s"), szString);strName1 = strName.Left(2); // 单姓strName2 = strName.Left(4); // 复姓for (int i = 0; i < FAMILY_NAMES_SINGLE_CNT; i++){if (strstr(strName1, g_szBookOfFamilyNames[i])){return (strName.GetLength() > 2);}}for(int k = FAMILY_NAMES_SINGLE_CNT; k < FAMILY_NAMES_CNT; k++){if (strstr(strName2, g_szBookOfFamilyNames[k])){return (strName.GetLength() > 4);}}return FALSE;
}

C++ 如何判断姓名字符串符合百家姓相关推荐

  1. java 判断数字_如何在java中判断一个字符串是否是数字

    前言 数字在某些领域经常用字符串来进行表示和传递.那么我们如何判断一个字符串是否是数字呢?今天我们来探讨一下这个话题. 空字符和null 首先我们可以很清晰的知道空字符""和nul ...

  2. 如何在java中判断一个字符串是否是数字

    前言 数字在某些领域经常用字符串来进行表示和传递.那么我们如何判断一个字符串是否是数字呢?今天我们来探讨一下这个话题. 空字符和null 首先我们可以很清晰的知道空字符""和nul ...

  3. C语言---写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串

    题目: 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串. #include <string.h> #include <stdio.h> void left_re ...

  4. Java:判断一个字符串中是否存在另一个字符子串以及判断一个字符串中是否存在指定字符

    Java:判断一个字符串中包含指定字符子串,判断一个字符串中存在指定字符 字符串的contains方法可以判断一个字符串中是否存在另一个字符子串,示例如下 String Str = "Hel ...

  5. AJPFX实列判断一个字符串是不是对称字符串

    import java.util.Scanner; /** 判断一个字符串是否是对称字符串 */ public class StringDemo { public static void main(S ...

  6. 如何判断一个字符串在JavaScript中是否包含某个字符?

    本文翻译自:How to tell if a string contains a certain character in JavaScript? I have a page with a textb ...

  7. java怎么统计随机数出现次数,Excel统计出现次数、个数的VBA代码 java中怎么判断一个字符串中包含某个字符或字...

    延伸:java中怎么判断一个字符串中包含某个字符或字符 描述:...一个字符串中包含某个字符的单词说出现的次数 c#什么方法可以判断字符串中包含某个字符的个数? JAVA判断字符串数组中是否包含某字符 ...

  8. python判断ip地址是否合法_python实现判断一个字符串是否是合法IP地址的示例

    一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:判断一个字符串是否是合法I ...

  9. 两种方法判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言)...

    例如:给定s1 = AABCD和s2 = BCDAA,返回1 给定s1 = abcd和s2 = ACBD,返回0. AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA 第一种: ...

最新文章

  1. Silverlight Blend动画设计系列四:倾斜动画(SkewTransform)
  2. python关机程序代码_python实现的重启关机程序实例
  3. java getIV_Java SAP CRM get_children 方法里面参数 iv_as_copy 有什么用? _好机友
  4. 360公布权威机构对扣扣保镖的测试报告
  5. Magento 显示下拉货币 How to add Currency selector to Magento’s header
  6. 大话企业级android读书笔记(一)
  7. 组播协议——IGMP v2报文头介绍
  8. 【实践】预训练模型在华为信息流推荐中的应用与探索.pdf(附下载链接)
  9. SpringCloudConfig分布式配置中心-基本使用
  10. 朋友借我10万并把房产证交给我,写了借条,并在借条上写明了用此房产做抵押,有效吗?
  11. 两种前端在线json编辑器方案(无法解决number精度丢失问题)
  12. 【涡动协方差及能量平衡系统】
  13. FFmpeg 加水印 加马赛克
  14. python运行出错时打印错误提示信息
  15. 农村饮用水项目微信支付完整代码
  16. Android进程间通信总结
  17. 本地代码推到远程仓库——gitee
  18. SAP 传输请求的操作步骤
  19. JS代码计算股票涨停
  20. 全国大学生信息安全竞赛知识问答-CISCN题库

热门文章

  1. M1 Mac 上安装 python mysqlclient
  2. ROOT(a Data analysis Framework)-Note5: iSTEP day2-TH1::Fit()
  3. 面试官:你说说软件测试WHX模型(图解)
  4. pr不支持mov怎么办_Premiere不支持MOV怎么办?怎么快速解决?
  5. 如何使用powertoys全盘搜索文件
  6. 聚合类新闻客户端的改进
  7. android系统电视升级包下载地址,海美迪HD600A四代官方固件ROM升级包下载_升级教程...
  8. WSL / WSL2 问题大全 及 解决方案
  9. PTA(Advanced Level) 1077:Kuchiguse(C语言实现)
  10. 新概念英语(第四册,旧版)复习(原文及全文翻译)——Lesson 1 - Finding Fossil Man(寻找化石人)