C 語言標準函數庫分類導覽 - stdio.h sscanf()

stdio.h 的函數 sscanf() 從陣列讀取字串,然後以格式化字串儲存該字串內不同型態的數值。有如下的可指定的轉換格式

%d有正負號的十進位整數int *
%i有正負號的十進位整數int *
%u無正負號的十進位整數int *
%o無正負號的八進位整數int *
%x, %X無正負號的十六進位整數int *
%c字元char
%s字串char *
%f浮點數double
%p記憶體位址的編碼void *
%%百分比符號%


sscanf() 的第一個參數為所接受的陣列名稱,第二個參數為格式化字串,隨後可接多個參數,依格式化字串中的轉換格式的數量而定。例如要求使用者輸入兩個整數,如下
sscanf(s1, "%d%d", &n1, &n2);


格式化字串中只需標明轉換格式, sscanf() 會自動依輸入的順序將值存入其後的參數中。這裡要注意,其後的參數必須是指標。


以下程式示範使用 sscanf() 的結果
#include <stdio.h>

int main(void)
{
    char c1[20] = "He has 5 books.\n";
    char c2[10], c3[10], c4[10];
    int n;
    
    sscanf(c1, "%s%s%d%s", c2, c3, &n, c4);
    printf("%s\n", c2);
    printf("%s\n", c3);   
    printf("%d\n", n);
    printf("%s\n", c4);
    return 0;
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:csscanf.c
    功能:示範 stdio.h 中函數 scanf() 的使用
    作者:張凱慶
    時間:西元2010年6月 */


編譯後執行,結果如下



您可以繼續參考


沒有留言: