函数功能:

输入:一串连续的拼音,如zhongguo

输出:zhong guo

void split_func(string pinyin, string &split_str) {int i = 0;stringstream result;for (i = 0; i<(int)pinyin.size(); i++){if (strchr("aeiouv", pinyin.at(i))){result << pinyin.at(i);continue;}else{if (pinyin.at(i) != 'n')  //不是n从该辅音前分开{if (i == 0){result << pinyin.at(i);}else{result << ' ' << pinyin.at(i);}if ((i + 1) < (int)pinyin.size() && (pinyin.at(i) == 'z' || pinyin.at(i) == 'c' || pinyin.at(i) == 's') &&(pinyin.at(i + 1) == 'h')){result << 'h';i++;}continue;}else                 //是n,继续向后{if (i == (int)pinyin.size() - 1){result << pinyin.at(i);continue;}elsei++;   //继续向后if (strchr("aeiouv", pinyin.at(i)))   //如果是元音,从n前分开{if (i == 1){result << 'n' << pinyin.at(i);continue;}else{result << ' ' << 'n' << pinyin.at(i);continue;}}//如果是辅音字母else{if (pinyin.at(i) == 'g'){if (i == (int)pinyin.size() - 1){result << 'n' << pinyin.at(i);continue;}elsei++;  //继续向后if (strchr("aeiouv", pinyin.at(i))){result << 'n' << ' ' << 'g' << pinyin.at(i);continue;}else{result << 'n' << 'g' << ' ' << pinyin.at(i);if ((i + 1) < (int)pinyin.size() && (pinyin.at(i) == 'z' || pinyin.at(i) == 'c' || pinyin.at(i) == 's') &&(pinyin.at(i + 1) == 'h')){result << 'h';i++;}continue;}}else   //不是g的辅音字母,从n后分开{result << 'n' << ' ' << pinyin.at(i);if ((i + 1) < (int)pinyin.size() && (pinyin.at(i) == 'z' || pinyin.at(i) == 'c' || pinyin.at(i) == 's') &&(pinyin.at(i + 1) == 'h')){result << 'h';i++;}continue;}}}}}split_str = result.str();
}

C++实现拼音字符串切分的函数相关推荐

  1. python filter函数 字符串_Python实现filter函数实现字符串切分

    在工作中,经常遇到字符串切分,尤其是操作linux命令,返回一段文本,如下面这种格式 Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G ...

  2. MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音MySQL汉字生成拼音字符串

    MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音 一.MySQL创建函数 1.语法 CREATE FUNCTION fun_name([paramName type , ...

  3. php parseurl的反函数,字符串修改(处理)函数

    ltrim();//去掉字符串左空格; rtrim();//去掉字符串右空格; trim(); //去掉字符串两边空格; //去掉空格是返回一个新的字符串;原字符串不变; strlen();     ...

  4. VB 字符串MD5加密函数

    函数代码: Private Const BITS_TO_A_BYTE = 8 Private Const BYTES_TO_A_WORD = 4 Private Const BITS_TO_A_WOR ...

  5. mysql 切分_Mysql字符串切分

    Mysql字符串切分的处理 前段时间做了一个对于字符串的切分,对于网页爬取的数据或者不规范的数据来源,常常会有这种需求. 由于在处理的过程中,sql语句中对字符串的出里函数以及方法不太了解,走了不少弯 ...

  6. python去掉字符串尾部空格的函数_python清除字符串前后空格函数的方法

    python清除字符串前后空格函数的方法 python有时候需要清除字符串前后空格,而字符本身的空格不需要清除掉,那就不能用正则re.sub来实现. 这时用到strip()函数 用法: str = ' ...

  7. PHP源代码分析-字符串搜索系列函数实现详解

    今天和同事在讨论关键字过虑的算法实现,前几天刚看过布隆过滤算法,于是就想起我们公司内部的查找关键字程序,好奇是怎么实现的.于是查找了一下源代码,原来可以简单地用stripos函数查找, stripos ...

  8. smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty。...

    smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty. function smarty_modifier_trunca ...

  9. R语言使用str_remove函数和str_remove_all函数删除模式匹配的字符串:str_remove函数删除第一个模式匹配的字符串、str_remove_all函数删除所有模式匹配的字符串

    R语言使用str_remove函数和str_remove_all函数删除模式匹配的字符串:str_remove函数删除第一个模式匹配的字符串.str_remove_all函数删除所有模式匹配的字符串 ...

最新文章

  1. 【代码段】UITableView Section圆角
  2. Linux 用户空间和内核空间指的是什么?
  3. JAVA_HOME和CLASSPATH设置
  4. azkaban修改MySQL配置上传包的大小上限
  5. 随便说说---java初级学习路线
  6. centos挂载windows共享目录
  7. 让医生能更好诊断患者风险 英国剑桥大学开发心脏病预测AI
  8. Android设计模式--之命令模式
  9. jQuery file upload测试
  10. 0 基础转行 Android 工程师是种怎样的体验?
  11. No package ‘libmarco-private‘ found
  12. jQuery---仿芒果网机票预定智能输入提示.
  13. Navicat for mysql破解版安装步骤
  14. php有c语言基础教程,c语言必背入门代码
  15. matlab中bp神经网络梯度怎么调精度,如何提高BP神经网络模型的预测精度?
  16. 外交部称扣押日本公司船舶只是一起个案
  17. windows内网渗透PTH/PTK攻击
  18. 机器视觉之eVision
  19. FFmpeg av_dump_format函数使用
  20. 热修复系列之一----Android 热修复原理篇及几大方案比较

热门文章

  1. 密码学DAY1_02
  2. windows用c++获取cpu温度
  3. 2021129:linux篇-查看压缩包里面的内容
  4. 分频器——秒分频、三分频、五分频、任意分频和偶数分频
  5. OneTab和BdTab的标签管理对比
  6. 进入微信企业项目授权回跳之后退出项目需要点击两次(手机的返回主键,回退键)才能正常退出的问题解决
  7. 文件下载(导出)功能,fileDownload。
  8. 有什么变音视频软件?这些软件值得收藏
  9. Vivado使用技巧(12):设置DCI与内部参考电压
  10. ios屏幕尺寸和分辨率