﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-小凡-随笔分类-算法</title><link>http://www.cppblog.com/zsenj/category/6185.html</link><description>对酒当歌，人生几何？
譬如朝露，去日苦多。</description><language>zh-cn</language><lastBuildDate>Thu, 22 May 2008 13:03:34 GMT</lastBuildDate><pubDate>Thu, 22 May 2008 13:03:34 GMT</pubDate><ttl>60</ttl><item><title>日文系统全角转换</title><link>http://www.cppblog.com/zsenj/archive/2007/09/20/32540.html</link><dc:creator>云翼</dc:creator><author>云翼</author><pubDate>Thu, 20 Sep 2007 05:46:00 GMT</pubDate><guid>http://www.cppblog.com/zsenj/archive/2007/09/20/32540.html</guid><wfw:comment>http://www.cppblog.com/zsenj/comments/32540.html</wfw:comment><comments>http://www.cppblog.com/zsenj/archive/2007/09/20/32540.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/zsenj/comments/commentRss/32540.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zsenj/services/trackbacks/32540.html</trackback:ping><description><![CDATA[<p>近日开发中遇到半角与全角转换的问题，当时想了很多方法来实现可是总不近人意，最终用了最简单的数组方式来实现（人笨没办法），大家如果有更好的方法可以贴出来哈。</p>
<p>源码如下：</p>
<p>#define ZEN_MAX_LEN&nbsp;&nbsp;&nbsp;&nbsp;2056</p>
<p>int FormatKaToZen(char* pDestination ,char* pSource)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;char *pTempDest&nbsp;&nbsp; = pDestination;<br>&nbsp;&nbsp;&nbsp;&nbsp;char *pTempSource = pSource;<br>&nbsp;&nbsp;&nbsp;&nbsp;char* pTemp = NULL;<br>&nbsp;&nbsp;&nbsp;&nbsp;int iTemp = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;char szDestination[ZEN_MAX_LEN] = "";<br>&nbsp;&nbsp;&nbsp;&nbsp;char szZen[3] = "";<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;char szHan[256][3] = {{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{"　"},{"！"},{"&#8221;"},{"＃"},{"＄"},{"％"},{"＆"},{"&#8217;"},{"（"},{"）"},{"＊"},{"＋"},{"、"},{"－"},{"．"},{"／"},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{"０"},{"１"},{"２"},{"３"},{"４"},{"５"},{"６"},{"７"},{"８"},{"９"},{"："},{"；"},{"＜"},{"＝"},{"＞"},{"？"},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{"＠"},{"Ａ"},{"Ｂ"},{"Ｃ"},{"Ｄ"},{"Ｅ"},{"Ｆ"},{"Ｇ"},{"Ｈ"},{"Ｉ"},{"Ｊ"},{"Ｋ"},{"Ｌ"},{"Ｍ"},{"Ｎ"},{"Ｏ"},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{"Ｐ"},{"Ｑ"},{"Ｒ"},{"Ｓ"},{"Ｔ"},{"Ｕ"},{"Ｖ"},{"Ｗ"},{"Ｘ"},{"Ｙ"},{"Ｚ"},{"［"},{"￥"},{"］"},{"＾"},{"＿"},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{"&#8217;"},{"ａ"},{"ｂ"},{"ｃ"},{"ｄ"},{"ｅ"},{"ｆ"},{"ｇ"},{"ｈ"},{"ｉ"},{"ｊ"},{"ｋ"},{"ｌ"},{"ｍ"},{"ｎ"},{"ｏ"},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{"ｐ"},{"ｑ"},{"ｒ"},{"ｓ"},{"ｔ"},{"ｕ"},{"ｖ"},{"ｗ"},{"ｘ"},{"ｙ"},{"ｚ"},{"｛"},{"｜"},{"｝"},{"～"},{""},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{""},{"。"},{"「"},{"」"},{"、"},{"・"},{"ヲ"},{"ァ"},{"ィ"},{"ゥ"},{"ェ"},{"ォ"},{"ャ"},{"ュ"},{"ョ"},{"ッ"},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{"ー"},{"ア"},{"イ"},{"ウ"},{"エ"},{"オ"},{"カ"},{"キ"},{"ク"},{"ケ"},{"コ"},{"サ"},{"シ"},{"ス"},{"セ"},{"ソ"},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{"タ"},{"チ"},{"ツ"},{"テ"},{"ト"},{"ナ"},{"ニ"},{"ヌ"},{"ネ"},{"ノ"},{"ハ"},{"ヒ"},{"フ"},{"ヘ"},{"ホ"},{"マ"},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{"ミ"},{"ム"},{"メ"},{"モ"},{"ヤ"},{"ユ"},{"ヨ"},{"ラ"},{"リ"},{"ル"},{"レ"},{"ロ"},{"ワ"},{"ン"},{"&#8243;"},{"&#176;"},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""}};</p>
<p>&nbsp;for(pTempSource;*pTempSource!='\0';*pTempSource++)&nbsp;<br>&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iTemp = (int)*pTempSource;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(iTemp &gt;= 32 &amp;&amp; iTemp &lt;= 126)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strncpy(szZen,szHan[iTemp],3);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcat(szDestination,szZen);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(iTemp &gt;= -95 &amp;&amp; iTemp &lt;= -33)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iTemp = iTemp + 256;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strncpy(szZen,szHan[iTemp],3);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcat(szDestination,szZen);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strncat(szDestination,pTempSource,2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pTempSource++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;}</p>
<p>&nbsp;strcpy(pDestination, szDestination);</p>
<p>&nbsp;return 0;<br>}</p>
<img src ="http://www.cppblog.com/zsenj/aggbug/32540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zsenj/" target="_blank">云翼</a> 2007-09-20 13:46 <a href="http://www.cppblog.com/zsenj/archive/2007/09/20/32540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>