2007年11月12日 星期一

結束字元 '\0' vs strlen

strlen 可以計算出char的長度

今天寫了程式 去抓 bluetooth wireless module所提供的字串
自己宣告的buffer有點大

怎麼去計算這個 buffer 都不是我感覺的那個值
明明只有幾個英文字
用strlen(buffer)
卻會計算出幾百個char

後來發現 因為我初始化的時候
memcpy(buffer, ' ',sizeof(buffer));
都把buffer塞滿空字元
空字元在ascii還有0x8的表示意義

所以我抓取的buffer怎麼算都大 (跟我宣告的buffer有些關係)

後來在抓取字元後在緊接著塞 '\0'
用strlen就可以算出正確的大小了

透過Facebook分享

沒有留言: