C/C++ 汉字转拼音

引言

前些天看到公司的代码,一个中文转换成拼音,居然写了千把行,让我很是汗颜,网上查了好多相关的资料,突然发现,大多都是千把行的,这让我根本按耐不住修改的冲动,于是就有这篇文章。

版权所有:CSND_Ayo,转载请注明出处:http://blog.csdn.net/csnd_ayo


简介

我使用的是C++ POSIX标准写的,应该支持跨平台(我只在window下测试过)

把原来的千把行代码转换成了92行的代码,分享得以延续,希望对朋友们有帮助。

为了方便新手阅读,事无巨细,注释全齐。

其实完全可以使用C去实现,但是作者爱C++胜过C,就是这么任性!


赏析

#include <iostream>
using namespace std;

/*
* 简介:利用C++处理中文转换成拼音
* 作者:陈鲁勇
* 参数:dest_chinese 待转换中文
* 参数:out_py 返回的拼写
* 返回:0成功 非0失败
* 拾遗:如有拾遗,请联系我。
* 邮箱:727057301@qq.com
* CSDN:http://blog.csdn.net/csnd_ayo
* 码云:https://git.oschina.net/Mr_ChenLuYong
* github:http://github.com/chenluyong
* 创建时间:2017-3-18 1:52:48
* VS版本:VS2013
*/
int ChineseConvertPy(const std::string& dest_chinese, std::string& out_py) {
	const int spell_value[] = { -20319, -20317, -20304, -20295, -20292, -20283, -20265, -20257, -20242, -20230, -20051, -20036, -20032, -20026,
		-20002, -19990, -19986, -19982, -19976, -19805, -19784, -19775, -19774, -19763, -19756, -19751, -19746, -19741, -19739, -19728,
		-19725, -19715, -19540, -19531, -19525, -19515, -19500, -19484, -19479, -19467, -19289, -19288, -19281, -19275, -19270, -19263,
		-19261, -19249, -19243, -19242, -19238, -19235, -19227, -19224, -19218, -19212, -19038, -19023, -19018, -19006, -19003, -18996,
		-18977, -18961, -18952, -18783, -18774, -18773, -18763, -18756, -18741, -18735, -18731, -18722, -18710, -18697, -18696, -18526,
		-18518, -18501, -18490, -18478, -18463, -18448, -18447, -18446, -18239, -18237, -18231, -18220, -18211, -18201, -18184, -18183,
		-18181, -18012, -17997, -17988, -17970, -17964, -17961, -17950, -17947, -17931, -17928, -17922, -
  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值