Q
具體含義
-4
A
回答
1
strchr()
函數返回一個指向字符串中第一個字符的指針,如果該字符不在字符串中,則返回一個空指針。因此,您不得先取消引用strchr()
的返回值,而不首先檢查它是否爲空指針以避免未定義的行爲。
strchrnul()
功能與strchr()
有幾種不同之處。首先,儘管strchr()
是標準庫函數,但strchrnul()
不是,而是自glibc 2.1.1以來的GNU擴展。您可能需要定義功能測試宏_GNU_SOURCE
才能啓用此功能。其次,雖然strchrnul()
返回指向字符串中第一次出現字符的指針,但如果字符不在字符串中,則會返回指向空終止符\0
的指針。因此,從strchrnul()
取消返回值總是安全的。如果字符未出現在字符串中,則返回值指向字符串的末尾(終止空字節),並且取消引用此指針的結果值爲0
。推測函數strchrnul()
可以獲取它的名字,因爲該函數返回一個指向尋找字符的指針或一個指向空字節的指針。
關於短語「終止空字節」:C字符串是一個數組char
s,其特殊屬性表示字符串中的最後一個char
是空字節。當然,一個char
保證在C中具有一個字節的寬度。空字節由字符文字'\0'
表示,但有時也被稱爲空終止符或NUL終止符(儘管該名稱對於編碼,但確實存在於ASCII和EBCDIC中)。該標準說:
C11§5.2.12
設置爲0的所有位字節,稱爲空 字符,應在基本執行字符集存在;用於終止字符串的是 。
相關問題
- 1. 的具體含義 - X是X + 1
- 2. jstat參數的具體含義:YGCT FGCT GCT
- 3. 用下劃線命名ivars,具體含義
- 4. 含有不帶切斷,具體項目
- 5. Spring窗體命令的含義
- 6. 我怎樣才能知道標籤在DICOM中的具體含義?
- 7. 具體類具體方法
- 8. 具體的SQL查詢主義翻譯
- 9. 工具欄溢出自定義字體
- 10. 定義具體明確的項目
- 11. 自定義驗證消息,具體
- 12. 自定義字體是具有IE
- 13. 實體框架核心不包含「包含」的定義
- 14. 在體內包含風格和腳本標籤的SEO含義?
- 15. 具有相關實體的深克隆主義實體
- 16. LUA從具體線路具體線路
- 17. 含義
- 18. 含義
- 19. 含義
- 20. 含義
- 21. 含義類定義
- 22. 隱含更具體的類型沒有得到拾取
- 23. 包含所有在記事本++的具體快報
- 24. READFILE並打印具體含量的不同
- 25. 包含具有2個主鍵的ManyToOne對象的實體
- 26. 檢查字符串包含在JavaScript中的具體數量
- 27. RenderAction需要表現不同,具體取決於包含頁面
- 28. 檢查ArrayList包含任何具體的數據
- 29. lua數組包含進一步檢查的具體值
- 30. DatabaseContext包含一個具有重複實體的DbSet,爲什麼?
非常簡單,它返回的第一個'\ 0'的地址通常是c字符串的最後一個字節。 – n0p
@ n0p你爲什麼要發佈答案作爲評論而不是答案? –
@JesperJuhl這樣做有什麼問題? – n0p