⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_45302.htm

📁 vc
💻 HTM
字号:
<p>
序号:45302 发表者:lixiang 发表日期:2003-06-28 22:07:21
<br>主题:如何进行汉字子串的查找?
<br>内容:我要在一个源字符串(包含ASCII字符和汉字的char *)中查找一个中文字符(即两个字节的模式子串), <BR>使用strstr()函数不行, 因为源字串中, 某个汉字的第二个字节与下一个汉字的第一个字节的组合, 可能会与模式子串匹配.<BR>请问有没有什么既简单又高效的方法(最好用纯C, 不用CString或STL中的string)?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:unknowman 回复日期:2003-07-04 18:54:58
<br>内容:汉字两个字节都大于128
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:LiXueHui 回复日期:2003-07-22 04:06:54
<br>内容:楼上说汉字的两个字节都大与128,即0x80,这只是在对汉字编码了解比较初级的阶段上的说法,比如早期在DOS下显示汉字常常用到UcDOS的16点阵字库Hzk16,一些C语言的教材也讲解如何从Hzk16文件中根据汉字内码得到汉字点阵,其中就有判断是否大于0x80。但是你多用一些汉字,你就会发现显示不了。因为Hzk16只包含了GB码,它只有常用的7000多个汉字,所以用上面提到的方法是不行的,为了用纯C的办法解决上面的问题,就需要用到GBK编码,它是"汉字内码扩展规范“的缩写,共有23940个汉字码位,包括了所有的汉字以及符号。只有查这个表才能完全解决问题。<BR>&nbsp;&nbsp;&nbsp;&nbsp;我手头有完整的GBK汉字对照表以及所有汉字对应的点阵字库,如果需要,可以和我联系
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:黎离 回复日期:2003-08-03 20:53:26
<br>内容:查找函数:<BR>int findChineseChar(const char* source, //源字符串(包含ASCII字符和汉字的char *)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char* destination) //一个中文字符(即两个字节的模式子串)<BR>{ <BR>&nbsp;&nbsp;char* p = (char*)source;<BR>&nbsp;&nbsp;int len = strlen(source);<BR><BR>&nbsp;&nbsp;while (p-source &lt; len)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( *p&gt;=0x80 )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( *p == *destination &amp;&amp; *(p+1)== *(destination+1))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return p-source; //中文字符所在的位置<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p +=2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p ++;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;return -1; // 表示没有找到指定的汉字字符<BR>}<BR>2003-8-3 22:40:23

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -