高手詳解:sscanf函數(shù)的高級(jí)用法

字號(hào):

大家都知道sscanf是一個(gè)很好用的函數(shù),利用它可以從字符串中取出整數(shù)、浮點(diǎn)數(shù)和字符串等等。它的使用方法簡(jiǎn)單,特別對(duì)于整數(shù)和浮點(diǎn)數(shù)來(lái)說(shuō)。但新手可能并不知道處理字符串時(shí)的一些高級(jí)用法,這里做個(gè)簡(jiǎn)要說(shuō)明吧。
    1. 常見(jiàn)用法。
    以下是引用片段:
    char str[512] = {0};
    sscanf("123456 ", "%s", str);
    printf("str=%s\n", str);
    2. 取指定長(zhǎng)度的字符串。如在下例中,取長(zhǎng)度為4字節(jié)的字符串。
    以下是引用片段:
    sscanf("123456 ", "%4s", str);
    printf("str=%s\n", str);
    3. 取到指定字符為止的字符串。如在下例中,取遇到空格為止字符串。
    以下是引用片段:
    sscanf("123456 abcdedf", "%[^ ]", str);
    printf("str=%s\n", str);
    4. 取僅包含指定字符集的字符串。如在下例中,取僅包含1到9和小寫(xiě)字母的字符串。
    以下是引用片段:
    sscanf("123456abcdedfBCDEF", "%[1-9a-z]", str);
    printf("str=%s\n", str);
    5. 取到指定字符集為止的字符串。如在下例中,取遇到大寫(xiě)字母為止的字符串。
    以下是引用片段:
    sscanf("123456abcdedfBCDEF", "%[^A-Z]", str);
    printf("str=%s\n", str);