1. 程式人生 > >C語言 scanf與正則表達式的搭配及應用

C語言 scanf與正則表達式的搭配及應用

num 數字 一個數 style 常用 輸出 其中 字符 小寫字母

前言

當輸入流是一個字符串,我們需要在其中提取我們所需要的數值時,正則表達式就顯得很有用。

如果我們能在輸入的時候,就過濾掉無用信息,就可以省去後期提取數值的步驟。

使用方法

  • scanf("%ns", str);

    表示讀取長度為n的字符串

    輸入:123456

    輸出str:123 ( 以scanf("%3s", str);為例 )

  • scanf("%[a-z]", str);

    表示讀取a-z的小寫字母,出現非a-z的小寫字母,立即停止讀取。

    輸入:abcd123

    輸出str:abcd

  • scanf("%*[a-z]%s", str);

    %*[ ]表示過濾掉滿足括號內條件的字符串 %[ ]表示讀取

    輸入:abcd123

    輸出str:123

  • scanf("%[^0-9]", str);

    ^表示非,^0-9表示非0-9的一切字符,因此是遇到0-9就立即停止讀取。

    輸入:abcd123

    輸出str:abcd

    PS:%[^\n] 表示 讀取回車符以前的所有字符,常用於讀取含空格的字符串

      %[^ ] 表示 讀取空格符以前的所有字符。

  • scanf("%*[^\n]%d", &num);

    表示過濾掉回車以前所有的字符,並將回車符的下一個數字賦給num。

    輸入:abcd\n12

    輸出num:12

    PS:%*[^ ]表示過濾空格以前的所有字符

C語言 scanf與正則表達式的搭配及應用