首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请编写程序,输出汉语,但程序里面不能有中文

2013-10-04 
请编写程序,输出中文,但程序里面不能有中文比如 输出“C语言真好玩”,但c++source里面不能有中文和字母[解决

请编写程序,输出中文,但程序里面不能有中文
比如 输出“C语言真好玩”,但c++source里面不能有中文和字母
[解决办法]
那要去了解了汉字编码了, GB2313 汉字编码占是两个字节, 按字节组合出字放到串中即可.

下面给出例子.
汉字生成;
分区表示
GB 2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。 
    01-09区为特殊符号。                   0xA1-0xA9 
    16-55区为一级汉字,按拼音排序。       0xB0-0xD7 
    56-87区为二级汉字,按部首/笔画排序.   0xD8-0xF7 
    10-15区及88-94区则未有编码。        0xAA-0xAF  0xF8-0xFE
    举例来说,“啊”字是GB2312之中的第一个汉字,它的区位码就是1601。
字节结构
在使用GB2312的程序中,通常采用EUC储存方法,以便兼容于ASCII。浏览器编码表上的“GB2312”,通常都是指“EUC-CN”表示法。 
    每个汉字及符号以两个字节来表示。
        第一个字节称为“高位字节”(也称“区字节)”,
        第二个字节称为“低位字节”(也称“位字节”)。 
       “高位字节”使用了0xA1-0xF7(把01-87区的区号加上0xA0),
       “低位字节”使用了0xA1-0xFE(把01-94加上 0xA0)。 
        由于一级汉字从16区起始,汉字区的“高位字节”的范围是0xB0-0xF7,“低位字节”的范围是0xA1-0xFE,占用的码位是 72*94=6768。
        其中有5个空位是D7FA-D7FE。 
     例如“啊”字在大多数程序中,会以两个字节,0xB0(第一个字节) 0xA1(第二个字节)储存。区位码=区字节+位字节(与区位码对比:0xB0=0xA0+16,0xA1=0xA0+1)


//随机汉字生成算法. GB2313编码.
CString ChinesWord()
{
 srand(time(NULL)+rand());
 BYTE Name[3]={0};
 Name[0]=0xA0+16+rand()%(0xF7-0xB0);//高字节.如果一级汉字是0xA1-0xA9 特殊符号
 int iRange=0xFE-0xA1;//
 if(Name[0]==0xD7)
 {
  iRange=0xFA-0xA1;
 }
 Name[1]=0xA1+rand()%iRange;//低字节
 CString strName;
 strName=Name;
 return strName;
}
[解决办法]
楼主可以使用16进制字符串或者8进制字符串表示。
[解决办法]
一种方法是用cin获取 输入的字符,显示出来,这个c++source里面就没有汉字了;
第二种 就是用code编码来表示 ,这样也不用汉字,

热点排行