NoobQuestion: 我聽說填充char數組可以用null char提前終止。這是如何完成的? 我已經搜索了每一個谷歌搜索結果,但仍然有空手。C++使用null部分填充數組
1
A
回答
5
你的意思是這樣的:
char test[11] = "helloworld";
std::cout << test << std::endl;
test[2] = 0;
std::cout << test;
此輸出
helloworld
he
?
+0
+1,@ user481407:還請注意,由於以空字符結尾的字符串,大小是helloworld + 1的大小。 – 2010-10-20 09:09:56
1
這是一個叫做「null終止字符串」的約定。如果你有一塊你認爲是字符緩衝區的內存塊,並且該緩衝區中有一個空字符,那麼以null結尾的字符串就是從緩衝區的開始處開始幷包含空字符的任何內容。
const int bufferLength = 256;
char buffer[bufferLength] = "somestring"; //10 character plus a null character put by the compiler - total 11 characters
這裏編譯器會在「somestring」之後放置一個空字符(即使您不要求,也會這樣做)。因此,儘管緩衝區的長度爲256,但所有使用以NULL結尾的字符串(如strlen()
)的函數將不會超出位置10處的空字符。
這就是「提前終止」 - 無論數據是在哪超出空字符的緩衝區將被忽略設計用於以空字符終止字符串工作的任何代碼。最後一部分很重要 - 代碼可以很容易地忽略空字符,然後在空字符上不會發生「終止」。
相關問題
- 1. 部分從文件中填充數組
- 2. 使用數組來填充MVC/C#
- 3. 使用AS3_Val填充C數組
- 4. 使用2個數組填充部分tableview
- 5. 在JList中使用部分填充的數組
- 6. 使用部分字符串填充二維數組
- 7. 如何在C中創建一個部分填充的數組#
- 8. 使用數組填充UITableView
- 9. javascript - 使用填充數組
- 10. 使用NSDictionary填充數組
- 11. 使用JOptionPane填充數組
- 12. 使用JLabels填充數組
- 13. 使用數組填充UITableView
- 14. 使用reshape2填充數組
- 15. 使用數組填充ListView
- 16. C++填充二維數組
- 17. 用數據填充TableView部分?
- 18. 使用數組數組來填充NSTableView
- 19. 部分填充數組,刪除重複數組
- 20. 使用表格填充其餘部分
- 21. AJAX調用外部數組填充
- 22. 使用plist填充分組表
- 23. C:使用填充填充圓形
- 24. 用C中的數組填充Xaml#
- 25. 用C填充一個數組0
- 26. JNA問題 - 僅使用從Java填充的部分數組由DLL使用
- 27. 使用數組填充組合框
- 28. 如何創建部分填充使用LINQ C#
- 29. 填充數組
- 30. 填充數組
你想用這個做什麼? – 2010-10-20 08:25:22
對不起,但這是模糊地回答。 (爲什麼_filling_會提前終止,取決於數組中要讀取的內容來填充?)您可能想要改進該問題。現在我投票結束了。 – sbi 2010-10-20 08:31:56