鱼C论坛

 找回密码
 立即注册
查看: 4346|回复: 9

怎样输出汉字的编码,为什么手动输入就没法输出正确的编码了呢

[复制链接]
发表于 2013-4-29 09:49:25 | 显示全部楼层 |阅读模式
6鱼币
‘啊’的编码值是 B0A1
第一个:
#include <stdio.h>
int main()
{
    int j;
    j='啊';
    printf("%c%c\n",j/256,j%256);//输出汉字
printf("%d %d\n",j/256,j%256);//输出汉字编码
printf("%d\n",j);//输出汉字总编码

   
    return 0;
}
无标题2.png

第二个:
#include <stdio.h>
int main()
{
char a[30];//a是字符型数组
//倘若在程序运行时输入汉字‘啊’
scanf("%s",a);
printf("%d %d\n",a[0],a[1]);//输出汉字编码  
printf("%c%c\n",a[0],a[1]);//输出汉字
        printf("%0x%0x\n",a[0],a[1]);//输出汉字十六进制编码     
        a[0]=a[0]%256;//为什么求余没有反应
a[1]=a[1]%256;
        printf("%0x%0x\n",a[0],a[1]);//输出汉字十六进制编码     
    return 0;
}

无标题3.png


第三个:
#include <stdio.h>
int main()
{
   int a[10];//整形数组
scanf("%d",a[0]);
printf("%c%c\n",a[0]/256,a[0]%256);//输出汉字
printf("%d %d\n",a[0]/256,a[0]%256);//输出汉字编码
printf("%0x %0x\n",a[0]/256,a[0]%256);//输出十六进制的汉字编码
printf("%d\n",a[0]);//输出整个的汉字编码
        printf("%0x\n",a[0]);//输出十六进制的整个汉字编码
return 0;
}

无标题4.png

最佳答案

查看完整内容

楼主第一个改为十六进制输出就对了!第二个把数组改为unsigned char型就可以了!!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-29 09:49:26 | 显示全部楼层
楼主第一个改为十六进制输出就对了!第二个把数组改为unsigned char型就可以了!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-29 10:01:18 | 显示全部楼层
每个汉字占用两个字节的内存空间,输出要用字符串。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-4-29 10:05:02 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-29 10:24:42 | 显示全部楼层
那个。。我是想输出汉字的编码
楼主可以尝试对字符串的每个字符用%x打印出来
  1. #include <stdio.h>
  2. #include <string.h>

  3. int main(void)
  4. {
  5.         char buffer[10] = "啊";
  6.         int i;

  7.         for (i=0; i<strlen(buffer); ++i)
  8.         {
  9.                 printf("%x", buffer[i]);
  10.         }
  11.         printf("\n");

  12.         return 0;
  13. }
复制代码
这是我自己写的一个程序,但是输出的是一个负数。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-4-29 14:01:14 | 显示全部楼层
小亮1201 发表于 2013-4-29 10:24
楼主可以尝试对字符串的每个字符用%x打印出来这是我自己写的一个程序,但是输出的是一个负数。

我的第一个程序,也是不用手动输入,事先赋值,可以输出正确的汉字编码,但是一旦用手动输入的话,结果就和用你的程序输出的一样,我就是这里弄不清为什么的说。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-4 08:37:07 | 显示全部楼层
没有人回答,自己领走好了,不知道可不可以
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-4 08:41:30 | 显示全部楼层
我只是路过打酱油的。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-4 08:45:02 | 显示全部楼层
不可以:'(~~~·
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-4 19:21:43 | 显示全部楼层
不能说_-的秘密 发表于 2013-5-4 18:07
楼主第一个改为十六进制输出就对了!第二个把数组改为unsigned char型就可以了!!

谢谢~~{:7_181:}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-30 09:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表