C++实现拼音字符串切分的函数
函数功能:
输入:一串连续的拼音,如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++实现拼音字符串切分的函数相关推荐
- python filter函数 字符串_Python实现filter函数实现字符串切分
在工作中,经常遇到字符串切分,尤其是操作linux命令,返回一段文本,如下面这种格式 Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G ...
- MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音MySQL汉字生成拼音字符串
MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音 一.MySQL创建函数 1.语法 CREATE FUNCTION fun_name([paramName type , ...
- php parseurl的反函数,字符串修改(处理)函数
ltrim();//去掉字符串左空格; rtrim();//去掉字符串右空格; trim(); //去掉字符串两边空格; //去掉空格是返回一个新的字符串;原字符串不变; strlen(); ...
- VB 字符串MD5加密函数
函数代码: Private Const BITS_TO_A_BYTE = 8 Private Const BYTES_TO_A_WORD = 4 Private Const BITS_TO_A_WOR ...
- mysql 切分_Mysql字符串切分
Mysql字符串切分的处理 前段时间做了一个对于字符串的切分,对于网页爬取的数据或者不规范的数据来源,常常会有这种需求. 由于在处理的过程中,sql语句中对字符串的出里函数以及方法不太了解,走了不少弯 ...
- python去掉字符串尾部空格的函数_python清除字符串前后空格函数的方法
python清除字符串前后空格函数的方法 python有时候需要清除字符串前后空格,而字符本身的空格不需要清除掉,那就不能用正则re.sub来实现. 这时用到strip()函数 用法: str = ' ...
- PHP源代码分析-字符串搜索系列函数实现详解
今天和同事在讨论关键字过虑的算法实现,前几天刚看过布隆过滤算法,于是就想起我们公司内部的查找关键字程序,好奇是怎么实现的.于是查找了一下源代码,原来可以简单地用stripos函数查找, stripos ...
- smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty。...
smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty. function smarty_modifier_trunca ...
- R语言使用str_remove函数和str_remove_all函数删除模式匹配的字符串:str_remove函数删除第一个模式匹配的字符串、str_remove_all函数删除所有模式匹配的字符串
R语言使用str_remove函数和str_remove_all函数删除模式匹配的字符串:str_remove函数删除第一个模式匹配的字符串.str_remove_all函数删除所有模式匹配的字符串 ...
最新文章
- 【代码段】UITableView Section圆角
- Linux 用户空间和内核空间指的是什么?
- JAVA_HOME和CLASSPATH设置
- azkaban修改MySQL配置上传包的大小上限
- 随便说说---java初级学习路线
- centos挂载windows共享目录
- 让医生能更好诊断患者风险 英国剑桥大学开发心脏病预测AI
- Android设计模式--之命令模式
- jQuery file upload测试
- 0 基础转行 Android 工程师是种怎样的体验?
- No package ‘libmarco-private‘ found
- jQuery---仿芒果网机票预定智能输入提示.
- Navicat for mysql破解版安装步骤
- php有c语言基础教程,c语言必背入门代码
- matlab中bp神经网络梯度怎么调精度,如何提高BP神经网络模型的预测精度?
- 外交部称扣押日本公司船舶只是一起个案
- windows内网渗透PTH/PTK攻击
- 机器视觉之eVision
- FFmpeg av_dump_format函数使用
- 热修复系列之一----Android 热修复原理篇及几大方案比较