当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]这是gcc的bug还是我的程序有问题?(关于中文字符的输出)(已解决)
帖子发表于 : 2007-10-09 12:32 
头像

注册: 2007-05-29 21:21
帖子: 249
地址: Kaiping China
送出感谢: 0 次
接收感谢: 0 次
代码:
#include<stdio.h>
int main(){
   int i;
   char chi[]="零一二";
   for(i=0;i<=5;i++){
      printf("%c",chi[i]);
   }
   printf("\n");
   return 0;
}



输出的是
引用:
零一



代码:
#include<stdio.h>
int main(){
   int i;
   char chi[]="零一二";
   for(i=0;i<=9;i++){
      printf("%c",chi[i]);
   }
   printf("\n");
   return 0;
}


输出的是
引用:
零一二


_________________
ubuntu=respect+helpfulness+sharing+community+caring+trust+unselfishness


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-10-09 12:46 
头像

注册: 2007-05-29 21:21
帖子: 249
地址: Kaiping China
送出感谢: 0 次
接收感谢: 0 次
经过高手指导,原来在gcc里中文要三个字符,前两个就可以显示一个字?


_________________
ubuntu=respect+helpfulness+sharing+community+caring+trust+unselfishness


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-10-09 12:51 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
uft8的中文本来就要3个字节吧,哪能这么容易就怀疑是人家gcc的bug啊? :lol:


_________________
关注我的blog: ε==3


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-10-09 13:03 
头像

注册: 2007-08-24 13:32
帖子: 212
送出感谢: 0 次
接收感谢: 0 次
代码:
#include<stdio.h>
int main(){
   int i;
   char chi[]="零一二";
   for(i=0;i<=5;i++){
      printf("%c",chi[i]);
   }
   printf("\n");
   return 0;
}

在程序的后面加上一句
代码:
printf("Size of chi-->%d\n",sizeof(chi));

你会看到输出为10,即占用了10个字节的空间。
也许正如楼上所说,中文字符在gcc中占3个字节,最后一个可能是字符"\0",作为字符串结束的标志。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-10-09 13:32 
头像

注册: 2007-05-29 21:21
帖子: 249
地址: Kaiping China
送出感谢: 0 次
接收感谢: 0 次
fearmind 写道:
代码:
#include<stdio.h>
int main(){
   int i;
   char chi[]="零一二";
   for(i=0;i<=5;i++){
      printf("%c",chi[i]);
   }
   printf("\n");
   return 0;
}

在程序的后面加上一句
代码:
printf("Size of chi-->%d\n",sizeof(chi));

你会看到输出为10,即占用了10个字节的空间。
也许正如楼上所说,中文字符在gcc中占3个字节,最后一个可能是字符"\0",作为字符串结束的标志。


哈哈,立刻明白了!谢谢 merci


_________________
ubuntu=respect+helpfulness+sharing+community+caring+trust+unselfishness


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-10-09 14:48 
头像

注册: 2007-03-13 17:26
帖子: 2254
送出感谢: 0 次
接收感谢: 1
UTF-8 才要3个字节存一个汉字,GBK就用2个字节


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-10-09 18:58 
头像

注册: 2007-05-29 21:21
帖子: 249
地址: Kaiping China
送出感谢: 0 次
接收感谢: 0 次
windwiny 写道:
UTF-8 才要3个字节存一个汉字,GBK就用2个字节

关键在此,我之前没有注意到


_________________
ubuntu=respect+helpfulness+sharing+community+caring+trust+unselfishness


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-10-10 6:49 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
C语言处理编码得小心熠熠的
python就轻松多了


_________________
目前负债150多万


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译