作者akka5678 ()
看板C_and_CPP
标题[问题] 阵列问题...
时间Wed Dec 16 14:42:15 2015
小弟新手,有个疑问想请教各位大神
想请问中文字在阵列里是占几个空间?
char str1[4] = {"C++"}; //这只要配四个就好,因为有包括\0
char str2[9] = {"圣诞快乐"}; //但这要配9个,所以一个字占两个空间吗?
__________________
| C | + | + | \n |
|___|___|___|____| cout << st1[1] ; //输出C
cout << str[2] ; //输出+
但str2就不能单独输出一个字,只能输出整个字串?
cout << str2[1]; //输出t ?
cout << str2[2]; //空白
cout << str2[3]; //空白
.....
cout << str2; //圣诞快乐
想请各位大神指教
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.15.48.128
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1450248137.A.ED2.html
1F:推 stupid0319: 中文字占两个char呀,不过Unicode的英文也是两个 12/16 14:48
2F:推 stupid0319: Google找下big5规则跟Unicode 12/16 14:51
3F:→ a27417332: 印象中Unicode是编码,UTF是实作方法吧 12/16 15:09
4F:→ a27417332: 印象中英文字2 byte应该也是看环境,吧(不确定 12/16 15:13
5F:→ LPH66: 一个中文字几个 byte 对初学者这是大哉问 12/16 15:23
6F:→ LPH66: 这跟你的原始档、编译方式和执行环境都有关 12/16 15:23
7F:→ LPH66: 如果是 2 byte 的状况你就想成跟 BBS 一样就对了 12/16 15:24
8F:→ LPH66: 不是 2 byte 的再来问 12/16 15:24
9F:推 overhead: 恩这是一个很复杂的议题 复杂到不适合新手 你可以google 12/16 22:53
10F:→ overhead: unicode UTF-8 ANSI等等关键字去了解相关讯息 12/16 22:54