2013-03-15 56 views
1

我有一個字符串包含二進制數據。 字符串的大小是4.其他函數向它寫入數據。 每次,數據是不同大小的如下,獲取字符串的多個'/ 000'字符的大小

buf[0] = '\037'; 
buf[1] = buf[2]=buf[3] ='\000'; 

buf[0] = '\037'; 
buf[1] = '\045'; 
buf[2]=buf[3] ='\000'; 

當我獲得字符串的長度,我在上述情況下分別得到1和2。 我希望字符串的長度在所有情況下都是4。

我應該如何處理終止字符?

回答

3

每個C字符串函數都假定NULL字節'\ 0'表示字符串的結尾。您不能將具有空字節的字符串作爲內容並使用標準的C字符串函數。

您將需要建立自己的字符串系統。請注意,您需要一些其他方式來確定您的字符串在哪裏結束。

-2

嘗試使用雙引號來初始化字符串

buf[0] = "\037"; 
buf[1] = buf[2]=buf[3] ="\000"; 

什麼u必須初始化是單引號

+0

'\ 0' 和 「\ 0」 字符 - 兩者都是相同 – Swanand 2013-03-15 07:56:33

+0

是「\ 0 '和「\ 0」都相同,但「\ 037」和「\ 037」不一樣 – hazzelnuttie 2013-03-15 07:57:40

相關問題