设为首页 加入收藏

TOP

中文字符转拼音源码(三)
2014-11-23 23:55:18 来源: 作者: 【 】 浏览:53
Tags:中文 字符 拼音 源码
turn str_pin[index];

if (code_pin[index] < char_zh) low = index;

else high = index;

}

return str_pin[code_pin[high] <= char_zh high : low];

}

/* 将中英混合字符串转化成拼音形式*/

string str_to_pin(string const &input)

{

string result ;

unsigned short char_zh;

int inputLength = input.length();

unsigned char high, low;

for (int i = 0; i < inputLength; ++i)

{

high = input[i] ;

if (high < 0x80) result.append(1, high);

else

{

low = input[++i];

char_zh = (high << 8 ) + low ;

result.append(get_pin(char_zh));

}

}

return result;

}

/* 将中英混合字符串转化成拼音形式,每个拼音后跟一个空格*/

string str_to_pin_space(string const &input)

{

string result;

unsigned short char_zh;

int inputLength = input.length();

unsigned char high, low;

for (int i = 0; i < inputLength; ++i)

{

high = input[i];

if(high < 0x80)

{

if (i > 0 && input[i-1] < 0) result.append(1, ' ');

result.append(1, high);

}

else

{

if(i > 0) result.append(1, ' ');

low = input[++i];

char_zh = (high << 8 ) + low ;

result.append(get_pin(char_zh));

}

}

return result;

}

/*

将中英及数字混合串转化成拼音,且每一连续部分之间放置一个空格。

输入必须满足只有上述三种字符的情况,正确性由调用端保证。

*/

string str_to_pin_space_(string const &input)

{

string result(1, ' ') ;

unsigned short char_zh;

int inputLength = input.length();

unsigned char high, low;

for (int i = 0; i < inputLength; ++i)

{

high = input[i] ;

if (high < 58)

{

if (i > 0 && (input[i-1] < 0 || input[i-1] > 57))

{

result.append(1, ' ');

}

result.append(1, high);

}

else if (high > 64 && high < 123)

{

if (i > 0 && (input[i-1] < 0 || input[i-1] < 58))

{

result.append(1, ' ');

}

result.append(1, high);

}

else

{

if(i > 0) result.append(1, ' ');

low = input[++i];

char_zh = (high << 8 ) + low ;

result.append(get_pin(char_zh));

}

}

return result;

}

/* 测试代码*/

int main()

{

cout << str_to_pin_space_("zhong hua人民dfd啊a152左边35gdaf共和国") << endl;

return 0;

}

摘自 学无止境的blog

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇一步一步写算法(之 最大公约数、.. 下一篇菜鸟修炼C语言小设计之――学生成..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: