第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

C語(yǔ)言求助,請(qǐng)問(wèn)如果我用這樣的函數(shù)縮短了字符串,如何把在緩存中的剩余字符串打印出來(lái)?

C語(yǔ)言求助,請(qǐng)問(wèn)如果我用這樣的函數(shù)縮短了字符串,如何把在緩存中的剩余字符串打印出來(lái)?

C
蘇和666 2017-11-01 14:08:01
fit將39后面的全部\0。puts(mesg+8)可以打印出緩存中的內(nèi)容嗎,為什么?
查看完整描述

1 回答

?
onemoo

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊

C 語(yǔ)言規(guī)定字符串是“一串以 '\0' 結(jié)尾字符序列”。一般用字符數(shù)組來(lái)保存,數(shù)組中的字符自然是連續(xù)排列的,另外別忘了用 '\0' 結(jié)尾。

處理字符串的庫(kù)函數(shù)都遵循這個(gè)邏輯。


fit 這個(gè)函數(shù)只是是在字符數(shù)組的相應(yīng)位置中寫(xiě)入 '\0'。


比如 fit(msg, 38),就是把 mesg 字符串中的逗號(hào)改為 '\0'。這樣后面 puts 在打印字符串時(shí),打印到這個(gè) '\0' 時(shí)就認(rèn)為字符串結(jié)束了,于是原來(lái)逗號(hào)后面的部分就不會(huì)被打印出來(lái)。


后面 puts(mesg + 39),這是讓 puts 從 mesg 字符串的“串首 + 39”這個(gè)位置開(kāi)始打印。這是從原本的逗號(hào)后面開(kāi)始打印,也就是跳過(guò)了前面寫(xiě)入的那個(gè) '\0'。這樣 puts 就從這里開(kāi)始一直打印到原字符串的末尾。


那么關(guān)于你最后的問(wèn)題

“fit將39后面的全部\0”:

你指的是這句 fit(msg, 38) 嗎??? 這并不是把第39個(gè)字符后面全部寫(xiě) '\0' 啊! 這只是把第39個(gè)字符改為 '\0'。這對(duì)字符串的影響我在上面已經(jīng)說(shuō)過(guò)了。


“puts(mesg+8)可以打印出緩存中的內(nèi)容嗎”:

為什么要問(wèn) +8 ??? 這當(dāng)然能打印字符串。只不過(guò)是從 mesg 的“串首 + 8”這個(gè)位置(也就是第9個(gè)字符)開(kāi)始打印。當(dāng)然仍然是打印到 '\0' 為止,不管這個(gè) '\0' 是不是在原本字符串的真正末尾。

查看完整回答
反對(duì) 回復(fù) 2017-11-02
  • 1 回答
  • 0 關(guān)注
  • 1321 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)