• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            ACM___________________________

            ______________白白の屋
            posts - 182, comments - 102, trackbacks - 0, articles - 0
            <2010年8月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(24)

            隨筆分類(332)

            隨筆檔案(182)

            FRIENDS

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            scanf/sscanf 格式的特殊控制

            Posted on 2010-08-25 11:38 MiYu 閱讀(928) 評論(0)  編輯 收藏 引用 所屬分類: ACM_資料
            代碼
            scanf中一種很少見但很有用的轉換字符:[...]和[ ^...]。
            #include
            <stdio.h>
            int main() 

            char strings[100]; 
            scanf(
            "%[1234567890]",strings); 
            printf(
            "%s",strings);
            return 0

            運行,輸入:1234werew后,結果是:
            1234
            通過運行可以發現它的作用是:如果輸入的字符屬于方括號內字符串中某個字符,那么就提取該字符;如果一經發現不屬于就結束提取。該方法會自動加上一個字符串結束符到已經提取的字符后面。 
            scanf(
            "%[^1234567890]",strings); 它的作用是:如果一經發現輸入的字符屬于方括號內字符串中某個字符,那么就結束提取;如果不屬于就提取該字符。該方法會自動加上一個字符串結束符到已經提取的字符后面。 
            注意:方括號兩邊不能空格,如:scanf(
            "%[ 1234567890 ]",strings); scanf("%[ ^1234567890 ]",strings); 不讓空格也會算在里面的。
            用這種方法還可以解決scanf的輸入中不能有空格的問題。只要用
            scanf(
            "%[^\n]",strings); 就可以了。很神奇吧。

            ANSI C 標準向 scanf() 增加了一種新特性,稱為掃描集(scanset)。 掃描集定義一個字符集合,可由 scanf() 讀入其中允許的字符并賦給對應字符數組。 掃描集合由一對方括號中的一串字符定義,左方括號前必須綴以百分號。 例如,以下的掃描集使 scanf() 讀入字符 A、B 和 C:
                
            %[ABC]

                使用掃描集時,scanf() 連續吃進集合中的字符并放入對應的字符數組,直到發現不在集合中的字符為止(即掃描集僅讀匹配的字符)。返回時,數組中放置以 
            null 結尾、由讀入字符組成的字符串。

                用字符 
            ^ 可以說明補集。把 ^ 字符放為掃描集的第一字符時,構成其它字符組成的命令的補集合,指示 scanf() 只接受未說明的其它字符。
                對于許多實現來說,用連字符可以說明一個范圍。 例如,以下掃描集使 scanf() 接受字母 A 到 Z:
                
            %[A-Z]
                重要的是要注意掃描集是區分大小寫的。因此,希望掃描大、小寫字符時,應該分別說明大、小寫字母。

            搜集一些特殊用法:

            %[ ] 的用法:%[ ]表示要讀入一個字符集合, 如果[ 后面第一個字符是”^”,則表示反意思。

                                 [ ]內的字符串可以是1或更多字符組成。空字符集(
            %[])是違反規定的,可

                                  導致不可預知的結果。
            %[^]也是違反規定的。
                      

            %[a-z] 讀取在 a-z 之間的字符串,如果不在此之前則停止,如

                          
            char s[]="hello, my friend” ; // 注意: ,逗號在不 a-z之間

                           sscanf( s, “
            %[a-z]”, string ) ; // string=hello


            %[^a-z] 讀取不在 a-z 之間的字符串,如果碰到a-z之間的字符則停止,如

                           
            char s[]="HELLOkitty” ; // 注意: ,逗號在不 a-z之間


                          sscanf( s, “
            %[^a-z]”, string ) ; // string=HELLO



            %*[^=] 前面帶 * 號表示不保存變量。跳過符合條件的字符串。

                          
            char s[]="notepad=1.0.0.1001" ;

                   
            char szfilename [32= "" ;

                   
            int i = sscanf( s, "%*[^=]", szfilename ) ;
            // szfilename=NULL,因為沒保存


            int i = sscanf( s, "%*[^=]=%s", szfilename ) ;
            // szfilename=1.0.0.1001


            %40c 讀取40個字符


            %[^=] 讀取字符串直到碰到’=’號,’^’后面可以帶更多字符,如:

                          
            char s[]="notepad=1.0.0.1001" ;

                          
            char szfilename [32= "" ;

                         
            int i = sscanf( s, "%[^=]", szfilename ) ;
                       
            // szfilename=notepad 


                    如果參數格式是:
            %[^=:] ,那么也可以從 notepad:1.0.0.1001讀取notepad

             

            人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 亚洲国产精品久久久久婷婷软件| 亚洲国产高清精品线久久| 中文字幕精品久久| 人妻少妇久久中文字幕| 久久久久中文字幕| 欧美成人免费观看久久| 久久99精品久久久久久动态图| 久久久久久av无码免费看大片| 中文字幕无码免费久久| 天天久久狠狠色综合| 中文字幕无码精品亚洲资源网久久 | 久久九九久精品国产| 男女久久久国产一区二区三区| 久久精品国产亚洲Aⅴ蜜臀色欲| 欧美精品乱码99久久蜜桃| 国产毛片久久久久久国产毛片| 伊人久久大香线蕉综合Av| 国产L精品国产亚洲区久久| 国内精品人妻无码久久久影院导航| 91精品国产91久久久久久蜜臀| 久久综合亚洲鲁鲁五月天| 精品人妻伦九区久久AAA片69 | 99精品国产免费久久久久久下载| 久久精品国产99国产电影网 | 久久婷婷成人综合色综合| 国产成人精品久久亚洲高清不卡| 狠狠色婷婷久久一区二区三区| 97精品伊人久久久大香线蕉| 亚洲日韩欧美一区久久久久我| 九九久久精品无码专区| 久久综合狠狠综合久久激情 | 7777久久亚洲中文字幕| 久久精品国产第一区二区三区 | 亚洲人成精品久久久久| 久久有码中文字幕| 久久综合伊人77777麻豆| 午夜精品久久久内射近拍高清 | 精品少妇人妻av无码久久| 国产成人久久精品一区二区三区 | 久久国产免费直播|