基礎知識 | 每日一練(120)
- 2019 年 10 月 5 日
- 筆記
么有的程式碼在調用 toupper() 前先調用 tolower()?
小林:老版的 toupper() 和 tolower() 不一定能夠正常處理不需要轉換的字元參數,例如數字、標點或已經符合請求的字元。在 ANSI/ISO 標準 C 中, 這些函數保證對所有的字元參數正常處理。
讀者:怎樣把字元串分隔成用空白作間隔符的段?怎樣實現類似傳遞給main() 的 argc 和 argv?
小林:標準中唯一用於這種分隔的函數是 strtok(), 雖然用起來需要些技巧, 而且不一定能做到你所要求的所有事。
讀者:我需要一些處理正則表達式或通配符匹配的程式碼。
小林:確保你知道經典的正則表達式和文件名通配符的不同。有許多匹配正則表達式的包可以利用。很多包都是用成對的函數, 一個 「編譯」 正則表達式, 另一個 「執行」 它, 即用它比較字元串。查查頭文件 <regex.h> 或<regexp.h> 和函數 regcmp/regex, regcomp/regexec, 或 re comp/re exec。這些函數可能在一個單獨的 regexp 庫中。