五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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語言字符串包含控制字符的一些問題的評論 (共 條)

分享到微博請遵守國家法律
淳安县| 北票市| 华安县| 亳州市| 凭祥市| 永城市| 阜宁县| 当阳市| 浦县| 大邑县| 京山县| 大足县| 大关县| 岗巴县| 莎车县| 湖州市| 碌曲县| 广南县| 波密县| 宾阳县| 革吉县| 宜兴市| 龙游县| 巴彦淖尔市| 宿迁市| 海盐县| 崇州市| 泊头市| 宁陕县| 遂溪县| 徐汇区| 彰化市| 阳西县| 吉安市| 循化| 乌拉特中旗| 康平县| 且末县| 宜阳县| 恭城| 沾化县|