﻿<?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/tdweng/category/16557.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 29 Mar 2013 17:19:20 GMT</lastBuildDate><pubDate>Fri, 29 Mar 2013 17:19:20 GMT</pubDate><ttl>60</ttl><item><title>VC半角与全角的转换</title><link>http://www.cppblog.com/tdweng/articles/145677.html</link><dc:creator>心羽</dc:creator><author>心羽</author><pubDate>Wed, 04 May 2011 08:41:00 GMT</pubDate><guid>http://www.cppblog.com/tdweng/articles/145677.html</guid><wfw:comment>http://www.cppblog.com/tdweng/comments/145677.html</wfw:comment><comments>http://www.cppblog.com/tdweng/articles/145677.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tdweng/comments/commentRss/145677.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tdweng/services/trackbacks/145677.html</trackback:ping><description><![CDATA[<p>1.半角转换为全角</p>
<p>CString CTestExcelChange091230Dl<wbr>g::DbcToSbc(CString stringText)<br>{<br>&nbsp;<wbr>CString str=L"";</p>
<p>&nbsp;<wbr>int nLength=stringText.GetLength();<br>&nbsp;<wbr>ASSERT(nLength!=0);<br>&nbsp;<wbr>TCHAR *c=new TCHAR[sizeof(TCHAR)*nLength+1];<br>&nbsp;<wbr>memset(c,0,sizeof(TCHAR)*nLength+1);<br>&nbsp;<wbr>wcscpy(c,stringText);<br>&nbsp;<wbr>for (int i=0;i&lt;nLength;i++)<br>&nbsp;<wbr>{<br>&nbsp;<wbr>&nbsp;<wbr>if (c[i]==32)<br>&nbsp;<wbr>&nbsp;<wbr>{&nbsp;<wbr><br>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>c[i]=(TCHAR)12288;<br>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>continue;<br>&nbsp;<wbr>&nbsp;<wbr>}<br>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>if (c[i]&lt;127)<br>&nbsp;<wbr>&nbsp;<wbr>{<br>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>c[i]=(TCHAR)(c[i]+65248);<br>&nbsp;<wbr>&nbsp;<wbr>}</p>
<p>&nbsp;<wbr>}</p>
<p>&nbsp;<wbr>str.Format(L"%s",c);</p>
<p>&nbsp;<wbr>delete c;<br>&nbsp;<wbr>c=NULL;<br>&nbsp;<wbr>return str;&nbsp;<wbr><br>}</p>
<p>2.全角转换为半角</p>
<p>CString CSpss::SbcToDbc(CString stringText)<br>{<br>&nbsp;<wbr>CString str=L"";</p>
<p>&nbsp;<wbr>int nLength=stringText.GetLength();<br>&nbsp;<wbr>ASSERT(nLength!=0);<br>&nbsp;<wbr>TCHAR *c=new TCHAR[sizeof(TCHAR)*nLength+1];<br>&nbsp;<wbr>memset(c,0,sizeof(TCHAR)*nLength+1);<br>&nbsp;<wbr>wcscpy(c,stringText);<br>&nbsp;<wbr>for (int i=0;i&lt;nLength;i++)<br>&nbsp;<wbr>{<br>&nbsp;<wbr>&nbsp;<wbr>if (c[i]==12288)<br>&nbsp;<wbr>&nbsp;<wbr>{ c[i]=(TCHAR)32;<br>&nbsp;<wbr>&nbsp;<wbr>continue;<br>&nbsp;<wbr>&nbsp;<wbr>}<br>&nbsp;<wbr>&nbsp;<wbr>if (c[i]&gt;65280 &amp;&amp; c[i]&lt;65375)<br>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>c[i]=(TCHAR)(c[i]-65248);<br>&nbsp;<wbr>}</p>
<p>&nbsp;<wbr>str.Format(L"%s",c);</p>
<p>&nbsp;<wbr>delete c;<br>&nbsp;<wbr>c=NULL;<br>&nbsp;<wbr>return str;&nbsp;<wbr><br>}<br></p>
<p>&nbsp;<wbr></p>
<p>这段程序今天看来有许多不好的地方，现将第一个程序其改为如下：</p>
<p>void CTestDlg2008Dlg::DbcToSbc(const CString stringText,CString &amp;str)<br>{<br>&nbsp;<wbr>int nLength=stringText.GetLength();<br>&nbsp;<wbr>ASSERT(nLength!=0);<br>&nbsp;<wbr>TCHAR *c=new TCHAR[sizeof(TCHAR)*nLength+1];<br>&nbsp;<wbr>memset(c,0,sizeof(TCHAR)*nLength+1);<br>&nbsp;<wbr>wcscpy(c,stringText);<br>&nbsp;<wbr>for (int i=0;i&lt;nLength;i++)<br>&nbsp;<wbr>{<br>&nbsp;<wbr>&nbsp;<wbr>if (c[i]==32)<br>&nbsp;<wbr>&nbsp;<wbr>{<br>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>c[i]=(TCHAR)12288;<br>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>continue;<br>&nbsp;<wbr>&nbsp;<wbr>}<br>&nbsp;<wbr>&nbsp;<wbr>if (c[i]&lt;127)<br>&nbsp;<wbr>&nbsp;<wbr>{<br>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>c[i]=(TCHAR)(c[i]+65248);<br>&nbsp;<wbr>&nbsp;<wbr>}</p>
<p>&nbsp;<wbr>}</p>
<p>&nbsp;<wbr>str.Format(L"%s",c);</p>
<p>&nbsp;<wbr>delete []c;<br>&nbsp;<wbr>c=NULL;<br>}<br>2010.7.3 </p>
<p>&#160;</p>
<p>&nbsp;</p>
<p><wbr></p>
<img src ="http://www.cppblog.com/tdweng/aggbug/145677.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tdweng/" target="_blank">心羽</a> 2011-05-04 16:41 <a href="http://www.cppblog.com/tdweng/articles/145677.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>奇偶校验码</title><link>http://www.cppblog.com/tdweng/articles/144090.html</link><dc:creator>心羽</dc:creator><author>心羽</author><pubDate>Wed, 13 Apr 2011 01:42:00 GMT</pubDate><guid>http://www.cppblog.com/tdweng/articles/144090.html</guid><wfw:comment>http://www.cppblog.com/tdweng/comments/144090.html</wfw:comment><comments>http://www.cppblog.com/tdweng/articles/144090.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tdweng/comments/commentRss/144090.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tdweng/services/trackbacks/144090.html</trackback:ping><description><![CDATA[奇偶校验码 
<img src ="http://www.cppblog.com/tdweng/aggbug/144090.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tdweng/" target="_blank">心羽</a> 2011-04-13 09:42 <a href="http://www.cppblog.com/tdweng/articles/144090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CRC校验</title><link>http://www.cppblog.com/tdweng/articles/143781.html</link><dc:creator>心羽</dc:creator><author>心羽</author><pubDate>Sat, 09 Apr 2011 02:27:00 GMT</pubDate><guid>http://www.cppblog.com/tdweng/articles/143781.html</guid><wfw:comment>http://www.cppblog.com/tdweng/comments/143781.html</wfw:comment><comments>http://www.cppblog.com/tdweng/articles/143781.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tdweng/comments/commentRss/143781.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tdweng/services/trackbacks/143781.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、什么是CRC校验&nbsp;&nbsp;&nbsp;&nbsp; 循环校验码（Jyclic Redundancy Check,简称CRC码): 是数据通信领域中最常用的一种差错校验码，其特征是信息字段和校验字段的长度可以任意选定。二、CRC校验计算&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CRC码是由两部分组成，前部分是信息码，就是需要校验的信息，后部分是校验...&nbsp;&nbsp;<a href='http://www.cppblog.com/tdweng/articles/143781.html'>阅读全文</a><img src ="http://www.cppblog.com/tdweng/aggbug/143781.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tdweng/" target="_blank">心羽</a> 2011-04-09 10:27 <a href="http://www.cppblog.com/tdweng/articles/143781.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>char工作总结</title><link>http://www.cppblog.com/tdweng/articles/134767.html</link><dc:creator>心羽</dc:creator><author>心羽</author><pubDate>Fri, 26 Nov 2010 15:23:00 GMT</pubDate><guid>http://www.cppblog.com/tdweng/articles/134767.html</guid><wfw:comment>http://www.cppblog.com/tdweng/comments/134767.html</wfw:comment><comments>http://www.cppblog.com/tdweng/articles/134767.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tdweng/comments/commentRss/134767.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tdweng/services/trackbacks/134767.html</trackback:ping><description><![CDATA[C+ +中char、unsigned char和signed char是三种类型，因此在函数重载和模板偏特化时，应注意重写它们的三个版本。虽然它们是三种类型，但char不是unsigned char就是signed char，且char是否有符号可由编译器改变。因此不因编写依赖char是有符号还是无符号的代码。<br><br>在C/C++语言中，char变量为一个字节，8位，<span style="FONT-SIZE: 18pt; COLOR: red">signed char表示的范围：-128~127</span>【-128在内存中的二进制表示为1000 0000，127在内存中的表示为0111 1111】；<span style="FONT-SIZE: 18pt; COLOR: red">unsign char表示的范围：0000 0000~1111 1111，即0~255</span><br><br><span style="COLOR: red">注意：整数在内存中是以补码存取的，正数的补码：等于自己，负数的补码：取反加1，例如：127在内存中表示为0111 1111， -127在内存中表示为~(0111 1111)+1=1000 0001； 假定某内存单元p的内容是1111 1111，那么它一定是255吗？实际上取决于你的代码是要把它看成有符号还是无符号数，如果是无符号则表示255，如果是有符号则表示-1【对于有符号数，最高位为符号位，1表示负，0表示正】：<br></span>signed char c=*p; //c=-1<br>unsigned char c=*p;//c=255<br>这也解释了上面这段代码能判断编译器默认char类型<br><br><em style="COLOR: #0000ff"><span style="FONT-SIZE: 14pt"><strong>在 char 、unsigned char、signed char三者相互转换中，并不丢失数据</strong></span><br></em>在实际工作中，char的用途还是很大的。以下将工作中遇到的问题记录。<br><span style="COLOR: #ff0000">1.unsigned char m_ucStr[] = {0x31,0x32};</span><br>&nbsp;&nbsp; 当char里面是16进制时，内存里面值是一样的。<br>&nbsp;&nbsp; <img height=95 alt="" src="http://www.cppblog.com/images/cppblog_com/tdweng/dd.jpg" width=521 border=0><br>&nbsp; 1.1 若想实现内存里的数据是3132里<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned&nbsp; char *str = new unsigned char[sizeof(<font color=#ff0000>m_ucStr</font>)];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CopyMemory(str,array,sizeof(<font color=#ff0000>m_ucStr</font>));<br><span style="COLOR: #ff0000">2.unsigned char m_ucStr[] = {31,32};</span><br>&nbsp; 当char里面是10进制时，内存10进制转为16进制<br><img height=65 alt="" src="http://www.cppblog.com/images/cppblog_com/tdweng/ddff.jpg" width=510 border=0>&nbsp;<br><span style="COLOR: red">3.在进制 char * 和 char *字符串复制时，若不指定源字符串长度，用 strcpy,若指定源字符串长度，用strncpy.但当源字符内存有 0x00时，则再也不能用 strcpy和strncpy了，只能用 memcpy.因为memcpy不以0x00为指定结束符</span><br>
<img src ="http://www.cppblog.com/tdweng/aggbug/134767.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tdweng/" target="_blank">心羽</a> 2010-11-26 23:23 <a href="http://www.cppblog.com/tdweng/articles/134767.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重写String类</title><link>http://www.cppblog.com/tdweng/articles/129083.html</link><dc:creator>心羽</dc:creator><author>心羽</author><pubDate>Fri, 08 Oct 2010 13:37:00 GMT</pubDate><guid>http://www.cppblog.com/tdweng/articles/129083.html</guid><wfw:comment>http://www.cppblog.com/tdweng/comments/129083.html</wfw:comment><comments>http://www.cppblog.com/tdweng/articles/129083.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tdweng/comments/commentRss/129083.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tdweng/services/trackbacks/129083.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;String<br><img id=Codehighlighter1_13_180_Open_Image onclick="this.style.display='none'; Codehighlighter1_13_180_Open_Text.style.display='none'; Codehighlighter1_13_180_Closed_Image.style.display='inline'; Codehighlighter1_13_180_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_13_180_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_13_180_Closed_Text.style.display='none'; Codehighlighter1_13_180_Open_Image.style.display='inline'; Codehighlighter1_13_180_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_13_180_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_13_180_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;String(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">str&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;NULL);//普通构造函数<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;String(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;String&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">other);//拷贝构造函数<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">String(</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">);//普通析构函数<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;String&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;String&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">other);//赋值函数<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">m_data;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>String::</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">String(</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_205_228_Open_Image onclick="this.style.display='none'; Codehighlighter1_205_228_Open_Text.style.display='none'; Codehighlighter1_205_228_Closed_Image.style.display='inline'; Codehighlighter1_205_228_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_205_228_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_205_228_Closed_Text.style.display='none'; Codehighlighter1_205_228_Open_Image.style.display='inline'; Codehighlighter1_205_228_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_205_228_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_205_228_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;delete&nbsp;[]m_data;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_261_272_Open_Image onclick="this.style.display='none'; Codehighlighter1_261_272_Open_Text.style.display='none'; Codehighlighter1_261_272_Closed_Image.style.display='inline'; Codehighlighter1_261_272_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_261_272_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_261_272_Closed_Text.style.display='none'; Codehighlighter1_261_272_Open_Image.style.display='inline'; Codehighlighter1_261_272_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>String::String(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">str&nbsp;</span><span id=Codehighlighter1_261_272_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_261_272_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">&nbsp;=&nbsp;NULL&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_275_430_Open_Image onclick="this.style.display='none'; Codehighlighter1_275_430_Open_Text.style.display='none'; Codehighlighter1_275_430_Closed_Image.style.display='inline'; Codehighlighter1_275_430_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_275_430_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_275_430_Closed_Text.style.display='none'; Codehighlighter1_275_430_Open_Image.style.display='inline'; Codehighlighter1_275_430_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_275_430_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_275_430_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(str&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;NULL)<br><img id=Codehighlighter1_295_341_Open_Image onclick="this.style.display='none'; Codehighlighter1_295_341_Open_Text.style.display='none'; Codehighlighter1_295_341_Closed_Image.style.display='inline'; Codehighlighter1_295_341_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_295_341_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_295_341_Closed_Text.style.display='none'; Codehighlighter1_295_341_Open_Image.style.display='inline'; Codehighlighter1_295_341_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;</span><span id=Codehighlighter1_295_341_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_295_341_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;m_data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">m_data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">\0</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_350_428_Open_Image onclick="this.style.display='none'; Codehighlighter1_350_428_Open_Text.style.display='none'; Codehighlighter1_350_428_Closed_Image.style.display='inline'; Codehighlighter1_350_428_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_350_428_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_350_428_Closed_Text.style.display='none'; Codehighlighter1_350_428_Open_Image.style.display='inline'; Codehighlighter1_350_428_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;</span><span id=Codehighlighter1_350_428_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_350_428_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;len&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;strlen(str);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;m_data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">[len</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;strcpy(m_data,str);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>String::String(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;String&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">other)<br><img id=Codehighlighter1_468_566_Open_Image onclick="this.style.display='none'; Codehighlighter1_468_566_Open_Text.style.display='none'; Codehighlighter1_468_566_Closed_Image.style.display='inline'; Codehighlighter1_468_566_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_468_566_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_468_566_Closed_Text.style.display='none'; Codehighlighter1_468_566_Open_Image.style.display='inline'; Codehighlighter1_468_566_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_468_566_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_468_566_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;length&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;strlen(other.m_data);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;m_data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">[length</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;strcpy(m_data,other.m_data);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>String&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">String::</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;String&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">other)<br><img id=Codehighlighter1_615_788_Open_Image onclick="this.style.display='none'; Codehighlighter1_615_788_Open_Text.style.display='none'; Codehighlighter1_615_788_Closed_Image.style.display='inline'; Codehighlighter1_615_788_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_615_788_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_615_788_Closed_Text.style.display='none'; Codehighlighter1_615_788_Open_Image.style.display='inline'; Codehighlighter1_615_788_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_615_788_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_615_788_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">other)<br><img id=Codehighlighter1_638_657_Open_Image onclick="this.style.display='none'; Codehighlighter1_638_657_Open_Text.style.display='none'; Codehighlighter1_638_657_Closed_Image.style.display='inline'; Codehighlighter1_638_657_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_638_657_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_638_657_Closed_Text.style.display='none'; Codehighlighter1_638_657_Open_Image.style.display='inline'; Codehighlighter1_638_657_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;</span><span id=Codehighlighter1_638_657_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_638_657_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;delete&nbsp;[]m_data;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;length&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;strlen(other.m_data);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;m_data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">[length</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;strcpy(m_data,other.m_data);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;argc,&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;argv[])<br><img id=Codehighlighter1_823_905_Open_Image onclick="this.style.display='none'; Codehighlighter1_823_905_Open_Text.style.display='none'; Codehighlighter1_823_905_Closed_Image.style.display='inline'; Codehighlighter1_823_905_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_823_905_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_823_905_Closed_Text.style.display='none'; Codehighlighter1_823_905_Open_Image.style.display='inline'; Codehighlighter1_823_905_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_823_905_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_823_905_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;String&nbsp;str(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hello</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;String&nbsp;str1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;str;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;String&nbsp;str2;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;str2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;str;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">&nbsp;</span></div>
<img src ="http://www.cppblog.com/tdweng/aggbug/129083.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tdweng/" target="_blank">心羽</a> 2010-10-08 21:37 <a href="http://www.cppblog.com/tdweng/articles/129083.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>字符集编码详解</title><link>http://www.cppblog.com/tdweng/articles/129049.html</link><dc:creator>心羽</dc:creator><author>心羽</author><pubDate>Fri, 08 Oct 2010 08:15:00 GMT</pubDate><guid>http://www.cppblog.com/tdweng/articles/129049.html</guid><wfw:comment>http://www.cppblog.com/tdweng/comments/129049.html</wfw:comment><comments>http://www.cppblog.com/tdweng/articles/129049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tdweng/comments/commentRss/129049.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tdweng/services/trackbacks/129049.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 字符是各种文字和符号的总称，包括各国家文字、标点符号、图形符号、数字等。字符集是多个字符的集合，字符集种类较多，每个字符集包含的字符个数不同，常见字符集名称：ASCII字符集、GB2312字符集、BIG5字符集、 GB 18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字，需要进行字符编码，以便计算机能够识别和存储各种文字。中文文字数目大，而且还分为简体中文和繁体中文...&nbsp;&nbsp;<a href='http://www.cppblog.com/tdweng/articles/129049.html'>阅读全文</a><img src ="http://www.cppblog.com/tdweng/aggbug/129049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tdweng/" target="_blank">心羽</a> 2010-10-08 16:15 <a href="http://www.cppblog.com/tdweng/articles/129049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>