在做一道九度上機題時,突然發現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; }

