最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C語言字符串包含控制字符的一些問題

2022-11-17 11:53 作者:章魚蘿卜貓  | 我要投稿

今天遇到個小問題,記錄一下。

在c語言中,char * a="abc\x61def" 這個字符串占多少字節(jié)?

這不是很簡單嗎?abc = 3byte,\x61 = 1byte, def = 3byte, 再加結(jié)尾的一個字節(jié),這不一共8字節(jié)嗎?

其實這就是c語言字符串16進(jìn)制轉(zhuǎn)義的一個坑,或者說不聰明的地方,在16進(jìn)制轉(zhuǎn)義中,并不限制位數(shù),也就是說 \x1234567=\x67, 前面的部分都被忽略了,這個a字符串,最后就變成了abc\xef, 也就是5個字節(jié)。

如果想要一個8個字節(jié)發(fā)字符串怎么辦?

方法一,把需要轉(zhuǎn)義的換成8進(jìn)制

char * a="abc\141def" ,141(8)=61(16),?? 在C語言中,8進(jìn)制被限制為3位,不會存在上述問題。

方法二,把需要轉(zhuǎn)義的部分分開

char * a="abc\x61" "def", 或者char * a="abc" "\x61" "def", 這樣寫就會得到8字節(jié)的字符串了。

在C語言中,預(yù)處理是第 4 階段,十六進(jìn)制轉(zhuǎn)義序列在第 5 階段轉(zhuǎn)換,字符串文字連接在第 6 階段完成。所以可以用上面的方法。

C語言字符串包含控制字符的一些問題的評論 (共 條)

分享到微博請遵守國家法律
海安县| 萍乡市| 独山县| 浙江省| 界首市| 阳曲县| 静宁县| 阳春市| 施秉县| 莱芜市| 阳城县| 云阳县| 莱阳市| 宽甸| 应城市| 梅河口市| 怀来县| 米林县| 郓城县| 新宾| 青河县| 临沭县| 石河子市| 读书| 庐江县| 红原县| 成安县| 太湖县| 云龙县| 沁水县| 焉耆| 永胜县| 保德县| 海盐县| 阳东县| 樟树市| 深圳市| 革吉县| 宜兰市| 侯马市| 玉门市|