sscanf


在做一道九度上機題時,突然發現sscanf()函數非常有用,就順便從網上搜集資料整理一下。

       sscanf() 的作用:從一個字符串中讀進與指定格式相符的數據.

原型: int sscanf (const char *str,const char * format,........);

 sscanf()會將參數str的字符串根據參數format字符串來轉換並格式化數據。         成功則返回參數數目,失敗則返回0。

注意:sscanf與scanf類似,都是用於輸入的,只是后者以鍵盤(stdin)為輸入源,前者以固定字符串為輸入源。

例子:

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(){
    char str[100];
    //用法一:取指定長度的字符串
    sscanf("12345","%4s",str);
    printf("用法一\nstr = %s\n",str);

    //用法二:格式化時間
    int year,month,day,hour,minute,second;
    sscanf("2013/02/13 14:55:34","%d/%d/%d %d:%d:%d",&year,&month,&day,&hour,&minute,&second);
    printf("用法二\ntime = %d-%d-%d %d:%d:%d\n",year,month,day,hour,minute,second);

    //用法三:讀入字符串
    sscanf("12345","%s",str);
    printf("用法三\nstr = %s\n",str);

    //用法四:%*d 和 %*s 加了星號 (*) 表示跳過此數據不讀入. (也就是不把此數據讀入參數中)
    sscanf("12345acc","%*d%s",str);
    printf("用法四\nstr = %s\n",str);

    //用法五:取到指定字符為止的字符串。如在下例中,取遇到'+'為止字符串。
    sscanf("12345+acc","%[^+]",str);
    printf("用法五\nstr = %s\n",str);

    //用法六:取到指定字符集為止的字符串。如在下例中,取遇到小寫字母為止的字符串。
    sscanf("12345+acc121","%[^a-z]",str);
    printf("用法六\nstr = %s\n",str);
    return 0;
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM